1

PHP フォームでファイル情報を取得するために、この html5 スクリプトを使用します。私が望むのは、ファイルをアップロードするのではなく、ファイルをアップロードせずにファイル名のみを取得することです。出来ますか?

スクリプトは次のとおりです。

<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>
4

3 に答える 3

0

f.nameあなたはすでにjavascript変数にファイル名を持っています。サーバーに送信したい場合は、フォーム内の非表示の入力に入れるだけです。または、ajax リクエストを使用してこの値を送信できます。

于 2012-04-30T13:03:37.977 に答える
0

$_FILESいいえ、アップロードして配列を確認しないと、ファイル名を知ることはできません。
ただし、ファイルをアップロードしてファイル名を返すAJAXリクエストを発行して、ビューに追加できるようにすることができます

于 2012-04-30T12:59:43.067 に答える
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']

于 2012-05-01T18:12:43.473 に答える