2013-07-27 55 views
1

我想讓用戶選擇一個文件。路徑位置應該存儲在JavaScript字符串中。後來驗證後,我想做一個Ajax調用服務器上傳文件到服務器上使用PHP。如何在不提交表單的情況下從輸入字段獲取文件路徑?

我不想直接提交表單,因爲頁面會重新加載,並且執行了很多sql查詢,並且會在服務器上造成不必要的負載。

<input type="file" id="files" name="files[]" multiple /> 
    <output id="list"></output> 

    <script> 
     function handleFileSelect(evt) { 
     var files = evt.target.files; // FileList object 

     // files is a FileList of File objects. List some properties. 
     var output = []; 
     for (var i = 0, f; f = files[i]; i++) { 
      alert(JSON.stringify(f)); 
      output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', 
         f.size, ' bytes, last modified: ', 
         f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a', 
         '</li>'); 
     } 
     document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>'; 
     } 

     document.getElementById('files').addEventListener('change', handleFileSelect, false); 
    </script> 

此警報提供了詳細信息,但不是我想要的路徑。

獲取路徑的任何幫助,所以我可以通過使用jQuery的ajax傳遞字符串,並使用move_uploaded_file使用php上傳文件。

在此先感謝。

+0

你想達到什麼目的?通過AJAX上傳文件?你不能只通過AJAX傳遞一個字符串,你需要實際上傳文件。 – putvande

+0

爲了安全起見,你試圖實現的目標是不可能的,瀏覽器永遠不會返回這個。你可以在這裏找到答案:http://stackoverflow.com/questions/15201071/how-to-get-full-path-of-selected-file-on-change-of-input-type-file-using-jav – scraaappy

+1

@putvande嗨,先生我想文件路徑作爲一個字符串,並作出ajax請求上傳文件。我不知道這是否可以完成 – user2626445

回答

0

當時,用戶已經做出選擇,你應該有一個價值。只需找到某處存放它,然後將其拉回到需要的地方即可。如果您不想提交表單以獲取值,則可以在繼續實際表單之前包含從哪裏獲取值的選擇/選項組合。沒有選擇=沒有形式。 Selection =表單,但尚未提交。

相關問題