2014-04-24 156 views
5

我使用jQuery File Upload插件https://github.com/blueimp/jQuery-File-Upload/wiki将多个文件上传到服务器。我将使用它与一个自定义的Web服务,它将上传的图像存储在服务器上。但是,除了POST请求体之外,我还需要向Web服务传递正在上传的文件的名称。所以,在每次文件传输时,我还需要将文件的名称传递给Web服务。任何人都可以告诉我如何获取文件名并将其与每个上传请求一起发送?我基本上需要从现场得到它,没有任何额外的输入字段。如果用户选择了10个文件,那么我需要为队列中的每个文件取名称,并使用上传请求提交它。使用jQuery File Upload插件获取上传文件名称

谢谢。

回答

11

好吧,这里是其运作的解决方案:

// Storing the file name in the queue 
var fileName = ""; 

// On file add assigning the name of that file to the variable to pass to the web service 
$('#fileupload').bind('fileuploadadd', function (e, data) { 
    $.each(data.files, function (index, file) { 
    fileName = file.name; 
    }); 
}); 

// On file upload submit - assigning the file name value to the form data 
$('#fileupload').bind('fileuploadsubmit', function (e, data) { 
    data.formData = {"file" : fileName}; 
}); 
0

我有没有使用什么样的Web服务的网站的想法,恢复即ASHX,如果 您可以使用

HttpPostedFile file = context.Request.Files["Filedata"]; 

获取文件名;

或使用jQuery

$("#yourid").uploadify({ 
..... 
    'onSelect': function(e, queueId, fileObj) 
    { 
     alert("FileName:" + fileObj.name); 
    } 
}); 

// jquery的文件上传

$('#fileupload').fileupload({ 
drop: function (e, data) { 
    $.each(data.files, function (index, file) { 
     alert('Dropped file: ' + file.name); 
    }); 
}, 
change: function (e, data) { 
    $.each(data.files, function (index, file) { 
     alert('Selected file: ' + file.name); 
    }); 
} 

});

+0

我需要在客户端的文件名与文件上传的POST请求提交。 – cycero

+2

我不使用uploadify - 它取决于Flash。我正在使用https://github.com/blueimp/jQuery-File-Upload/wiki – cycero

+0

https://github.com/blueimp/jQuery-File-Upload/wiki/API#callbacks有答案like uploadify – TechStone

2
var filename = $('input[type=file]').val().split('\\').pop(); 
相关问题