Jquery MvcFileUploader 1.3.2未保存文件

Jquery MvcFileUploader 1.3.2未保存文件,jquery,asp.net-mvc,Jquery,Asp.net Mvc,使用MvcFileUploader 1.3.2,演示不会为我将上传的文件保存到服务器 我正在使用VS2010 要复制,请创建一个新的web项目并获取nuget包 PM> Install-Package MvcFileUploader 运行项目并导航到演示 http://localhost/MvcUploaderTest/Demo 使用控件上传文件,我使用的是一个小jpg。您应该会看到返回的JSON结果。第一个条目是错误,我的条目如下所示 {"files":[{"error":null

使用MvcFileUploader 1.3.2,演示不会为我将上传的文件保存到服务器

我正在使用VS2010

要复制,请创建一个新的web项目并获取nuget包

PM> Install-Package MvcFileUploader
运行项目并导航到演示

http://localhost/MvcUploaderTest/Demo
使用控件上传文件,我使用的是一个小jpg。您应该会看到返回的JSON结果。第一个条目是错误,我的条目如下所示

 {"files":[{"error":null,...
检查上载目录,查看文件是否已上载

~/Content/uploads/
应用程序或日志中没有错误或异常。有人能让这个演示正常工作吗

这看起来像是一个有用的包,它使用了一个漂亮的jquery文件上传程序。它有一个用于razor的Html帮助程序,创建缩略图,您可以将上载的文件与实体关联。我已经考虑过使用它,但它更重,而且似乎配置更多

谢谢

编辑 这是返回的JSON

{
"files": [{
    "error": null,
    "name": "C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg",
    "size": 286054,
    "type": "image/bmp",
    "url": "/MvcUploaderTest/DownloadFile?fileUrl=/Content/uploads/C:\MvcApplication2\MvcApplication2\Content\txt.jpg\u0026mimetype=image/bmp",
    "delete_url": "/MvcUploaderTest/DeleteFile?entityId=1234\u0026fileUrl=/Content/uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg",
    "thumbnail_url": "/Content/uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg?width=80\u0026height=80",
    "delete_type": "POST",
    "FullPath": "C:\\MvcApplication2\\MvcApplication2\\Content\\uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg",
    "SavedFileName": "C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg",
    "Title": "txt"
}]

}您似乎正在使用IE8

问题是Request.Files[0]。FileName提供文件的完整路径,以防其从IE8发布

Request.Files[0]。FileName获取值C:\mvcapapplication2\mvcapapplication2\Content\txt.jpg

而包括IE10在内的所有现代浏览器都只给出上传的文件名,而没有给出路径

Request.Files[0]。FileName获取值txt.jpg

但是,不确定Mvc框架如何实现此HttpPostedFileBase.FileName属性

因为MvcFileUploader使用这个名称和StorageDirectory来保存文件,在IE8的情况下会失败

修正:

在MvcUploaderTestController.UploadFile中更改此行

//overriding defaults
//x.FileName = Request.Files[i].FileName; //original
x.FileName = new FileInfo(Request.Files[i].FileName).Name;
这将保存文件

但是对于IE8,它也尝试下载从操作返回的json结果,这会导致始终显示进度。实际上,Blueimp插件尝试使用IE8的iframe上传文件

您需要发送内容类型为text/plain的带有accept标头的响应


谢谢

按承诺完成工作,我一分钟前刚试过。如果上传的图像显示在上传的对话框中,它就像上传的文件一样。上传的图像不会为我显示。进度条一直在运行@developer10214您使用的是哪个版本的VS和ASP.MVC?我使用的是VS 2010、VS 2012和MVC谢谢。仍然不起作用,没有说明原因。我在MvcTestControllerDemo UploadFile中一步一步地浏览了代码,它似乎可以工作,但没有保存任何文件。路径非常奇怪/内容/上传/C:\\mvcapapplication2\\