2012-04-30 1 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配列を確認せずにファイル名を知ることができません。あなたはあなたの意見に

0

を追加することができますので、
ただしすでにf.name javascriptの変数にファイル名を持つファイルをアップロードし、ファイル名を返しますAJAX要求を発行することができます。サーバーに送る場合は、フォームの隠れた入力に入れてください。または、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']

関連する問題