2012-02-09 62 views
2

我正在使用Blueimp提供的jQuery文件上傳版本5.6提供的演示頁面。我可以在我的ASP.NET MVC項目中運行演示,以便可以從頁面上載文件。從jQuery File Upload插件的控制器動作返回什麼?

但是,即使文件成功上傳,UI也會報告錯誤。我100%肯定這個錯誤是因爲我沒有從我的控制器動作中返回適當的信息。

這裏是我現有的行動:

[HttpPost] 
    public virtual JsonResult ImageUpload(FormCollection formdata) 
    { 
     var imagePath = Setting.Load(SettingKey.BlogImagesBasePath).Value; 
     for(var i = 0; i < Request.Files.Count; i++) 
     { 
      var saveFileName = string.Format("{0}\\{1}", imagePath, Request.Files[i].FileName); 
      Log.DebugFormat("Attempting to save file: {0}", saveFileName); 
      Request.Files[i].SaveAs(saveFileName); 
     } 

     return Json(new {}); 
    } 

我不知道結果的內容應該是什麼。我嘗試通過php示例進行排序,但對php完全不熟悉,我可以做的最好的是可能涉及到文件名,大小和類型。

是否有人有一個工作MVC示例的鏈接或提供我需要的信息將正確的數據返回給插件?

回答

1

帆船柔道

我認爲這個問題解決您的需求100%:

jQuery File Upload plugin asks me to download the file, what is wrong?

這裏基本上什麼演示:

類:

public class ViewDataUploadFilesResult 
{ 
    public string Name { get; set; } 
    public int Length { get; set; } 
    public string Type { get; set; } 
} 

的行動:

[HttpPost] 
public JsonResult UploadFiles() 
{ 
    var r = new List<ViewDataUploadFilesResult>(); 
    Core.Settings settings = new Core.Settings(); 
    foreach (string file in Request.Files) 
    { 
     HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
     if (hpf.ContentLength == 0) 
      continue; 
     string savedFileName = Path.Combine(settings.StorageLocation + "\\Files\\", Path.GetFileName(hpf.FileName)); 
     hpf.SaveAs(savedFileName); 

     r.Add(new ViewDataUploadFilesResult() 
     { 
      Name = hpf.FileName, 
      Length = hpf.ContentLength, 
      Type = hpf.ContentType 
     }); 
    } 
    return Json(r); 
} 

所以,基本上,你只需要返回ViewDataUploadFilesResult集合的jsonresult。

希望它有幫助。

+0

它的確如此,謝謝。我搜索了很多次,但沒有看到這個。 – 2012-02-09 15:06:05

+0

sj - 我確切地知道你的意思,我是那種在尋找它們時將他的眼鏡留在頭頂上的人:) – 2012-02-09 15:10:34

+0

使用上面的代碼,我收到一個錯誤:「空文件上傳結果」該響應不是一個文件[]數組。我在一個不相關的示例中發現了以下內容並對其進行了修改,希望此添加可以幫助任何遇到相同問題的人:var uploadedFiles = new { files = r.ToArray() }; return Json(uploadedFiles); – 2014-06-02 21:28:35

相關問題