我正在使用Blueimp提供的jQuery File Upload 5.6版提供的演示页面。我可以让我的ASP.NET MVC项目中的演示工作到可以从页面上传文件的程度。
但是,即使文件成功上传,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示例或提供将正确数据返回到插件所需的信息?
答案 0 :(得分: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。
希望它有所帮助。