2012-02-09 11 views
2

BlueimpのjQuery File Uploadバージョン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

ありがとうございます。私はSOで何度も検索しましたが、これを見ていませんでした。 –

+0

sj - 私はまさにあなたが意味することを正確に知っています、私は彼らのために彼の頭の上に彼の眼鏡の上に彼の眼鏡を残して男のようなものです:) –

+0

上記のコードを使用して、私はエラーを受け取りました: "応答はfiles []配列ではありませんでした。私は無関係なサンプルで以下を見つけ、修正しました。この問題が誰かが同じ問題に遭遇するのを助けることを願っています:var uploadedFiles = new { files = r.ToArray() }; return Json(uploadedFiles); –

関連する問題