2014-04-24 103 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(); 
相關問題