2016-12-02 53 views
0

我有上傳使用jQuery/ajax的多個文件上傳的問題。多文件上傳jQuery的阿賈克斯與擴展

我的問題是,當我嘗試提交一個文件的PNG或JPG文件它甚至沒有提交,它會提醒請即使我已經把一個文件上傳文件。

我應該怎麼做才能進入我的其他聲明。因爲我試圖刪除我的條件,我只是把阿賈克斯和它的作品,並把我的數據庫。但是當我把一個適當的文件擴展名的條件,即使我已經把jpg或png文件仍然會提醒請上傳文件。

這裏是我的代碼

HTML

<!-- MULTIPLE UPLOAD FORM --> 
<h1>Multiple File Upload</h1> 
<form id="multiple" method="POST" enctype="multipart/form-data"> 

    <input type="file" id="file" name="file[]" multiple /> 
    <input type="submit" id="multBtn" value="Upload File"> 
    </br> 
</form> 

jQuery的

$("#multBtn").on('click',function(e){ 
e.preventDefault(); 
var imgData = document.getElementsByName('file')[0]; 
var imageUploadPath = imgData.value; 

if(imageUploadPath == ''){ // user did not upload anything 
    alert('Please Upload File'); 
} 
else{ 
    //user uploaded a file 
    var Extension = imageUploadPath.substring(imageUploadPath.lastIndexOf('.')+1).toLowerCase(); 
    if(Extension == "png" || Extension == "Jpeg" || Extension == "jpg"){ 
     $.ajax({ 
     url: '/uploadMultipleImg', 
     type: 'POST', 
     data: new FormData($(this).parents('form')[0]), 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function(data){ 

     }, 
     }); 
     return false; 
    } } 
+0

你有沒有做過任何調試,看看事情出錯了?例如,「Extension」有什麼值? –

+0

此外,您還將substring的返回值轉換爲'lowerCase',但是您在if語句中檢查'「Jpeg」'。 – Qsprec

+0

@Pekka웃在我試圖把變量擴展。我只是第一次嘗試沒有任何條件和可變的擴展和它的工作的Ajax。並且它到我的數據庫,然後我嘗試了單個文件上傳的代碼並將其應用於我的多個文件上傳。當我試圖提醒變量imageUploadPath它沒有價值,我不知道爲什麼它沒有讀取我放的文件。我沒有傳遞給我的else語句 – erinr

回答

0

要檢查是否選擇的文件使用:

var fileUpload = $("#file").get(0); 
var files = fileUpload.files; 

然後通過類似文件循環這個:

for (var i = 0; i < files.length; i++) { 
    //code 
} 

更改文件輸入名稱並使其與id相同。

<input type="file" id="file" name="file" multiple /> 

你可以看到this文件上傳與ajax教程,這將有所幫助。