【问题标题】:JQuery-File-Upload Save Path & FilenameJQuery-File-Upload 保存路径和文件名
【发布时间】:2014-06-14 20:53:22
【问题描述】:
我在我的 MVC 5.1 项目(VS 2013)上安装了Demo JQuery File Upload by blueimp with Backload MVC 4。如何获取上传文件的路径和文件名?我想将路径和文件名保存在数据库中。
我在删除已上传的文件时也遇到了问题,SO 已经问过这个问题,但还没有回应。我有错误:
DELETE http://localhost:58082/Backload/UploadHandler
当我在 MVC 4 (VS2012) 上创建另一个项目时,不会发生这种情况。它可以删除文件。
JQuery-File-Upload 与 MVC 5 兼容吗?在发行说明中,说它是为 MVC 4 开发的,那么如何在 MVC 5 上实现呢?
【问题讨论】:
标签:
jquery
asp.net-mvc
asp.net-mvc-4
asp.net-mvc-5
jquery-file-upload
【解决方案1】:
这可能不是您的确切答案。但是,它可能会帮助您朝着正确的方向前进。
我自己找不到直接的方法。所以我把用户表单分成了两部分。文件上传表单和其他用户数据表单。使用 css 很容易让用户感受到它的一种延续形式。
我先上传文件并读取文件名。这是因为例如如果您上传 ten.png 并且如果存在于目标文件夹中,则文件上传插件会将其重命名为 ten (1).png。因此,对我来说,将真实文件名保存在 DB 中很重要。
现在,当上传文件时,我得到的文件名如下:
var failed = false;
var tempfiles = new Array();
$('#fileForm').bind('fileuploaddone', function(e, data) {
var obj = $.parseJSON(data.jqXHR.responseText);
for (var ind in obj.files)
tempfiles.push(obj.files[ind].name);
})
.bind('fileuploadfailed', function(e, data) {
console.log('upload FileUpload failed !!');
failed = true;
})
.bind('fileuploadfail', function(e, data) {
console.log('upload FileUpload failed !!');
failed = true;
})
.bind('fileuploadstopped', function(e) { // called when all files finish uploading
if (tempfiles.length == 0)
failed = true;
if(failed){
// deal with failed file uploads
}
console.log( tempfiles ); // this should contain all file names
});
注意:如果您不关心文件上传失败,那么您可以安全地移除 fileuploadfail 和 fileuploadfailed 事件绑定并进行必要的更改。