2012-04-30 82 views
1

我使用這個html5腳本,以獲得我的php形式的文件信息。我想要的不是上傳文件,而是隻上傳文件名而不上傳文件。可能嗎?如何在JavaScript中將PHP文件名分配爲變量值?

下面是腳本:

<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++) { 
    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> 
+0

尋找'$ _FILES []' – diEcho

+0

是的,但我不想上傳文件,因爲我搜索解決方案! –

回答

0

不,你可以不知道文件名,不上傳和檢查$_FILES陣列。
但是,您可以發出一個AJAX請求,將上傳的文件,並返回文件名,所以你可以在你的意見

0

它添加你已經有文件名中f.name javascript變量。如果你想將它發送到服務器,只需將它放在窗體中的隱藏輸入中即可。或者您可以使用ajax請求發送此值。

+0

文件上傳是否需要?或者我可以只發送沒有文件的名稱?謝謝 –

0

給出下列形式:

<form name="myForm" action="send.php"> 
    <input type="file" id="fileSelect"> 
    <input type="hidden" name="filename"> 
    <input type="submit"> 
</form> 

要停止實際上正在上傳的文件,不給文件輸入領域的name 屬性。相反,你創建一個hidden輸入字段,當用戶選擇 文件,填充該領域的文件名,例如:

<script> 
    var fileSelect = document.getElementById('fileSelect'); 

    var handleFileSelect = function(e) { 
     var files = e.target.files; 
     if(files.length === 1) { 
      document.forms.myForm.filename.value = files[0].name; 
     } 
    }; 

    fileSelect.addEventListener('change', handleFileSelect, false); 
</script> 

現在,當用戶提交表單時,你可以用得到的文件名$_GET['filename']

相關問題