6

複数ファイルのアップロードのHTML/PHP側は理解していますが、私が求めているのは、ファイル配列の事前投稿を分離し、ファイルを別のPHPプログラムに個別に送信して、アップロードと成功を受け取るJavascriptソリューションだと思います。続行する前にフィードバックに失敗します。(例:files [0]-> POST-> Success-> files [1]-> POST-> Success-> etc ...)

これが私が現在単一のファイルに使用しているものです-

    function upload(file){
        var data = new FormData();
        data.append("file", document.getElementById(file).files[0]);
        var xmlHTTP = new XMLHttpRequest();
        xmlHTTP.open("POST", "uploader.php");
        xmlHTTP.send(data);
    }

複数のファイルフィールドを作成するのが簡単な方法だと思いますが、私がやろうとしているのは<input type="file" multiple>、HTML5からファイルのリストを一度に一括選択することです。Javascriptでファイルを分離することしかできなかった場合は、上記のスクリプトをループして、onreadystatechange毎回成功/失敗を報告するだけです。

何か案は?

編集:
私のトンネルのビジョンを許してください、それは非常に簡単でした!これが誰かを助けるための私の完全なコードです。

<html>
<head>
    <script language="Javascript">
    function multiupload(file){
    count = 0;
    maxcount = document.getElementById(file).files.length;
    alert(maxcount);
    upload(file,count);
    }

    function upload(file,count){
        var data = new FormData();
        data.append("file", document.getElementById(file).files[count]);
        var xmlHTTP = new XMLHttpRequest();
        xmlHTTP.open("POST", "uploader.php");
        xmlHTTP.onreadystatechange=function(){
            if (xmlHTTP.readyState == 4 && xmlHTTP.status == 200){
            count = count+1;
            if(count<maxcount){
            upload(file,count);
            }
            }
        }
        xmlHTTP.send(data);
    }
    </script>
</head>
<body>
    <div id="result"></div>
    <form method="post" action="">
        <input type="file" name="file" id="file" multiple>
        <input type="button" name="submit" value="Upload" onclick="multiupload('file');void(0);">
    </form>
</body>
</html>
4

2 に答える 2

3

これを試してください。サクセスハンドラで次のファイルのアップロードを開始できます。そうすれば、files [0]-> POST-> Success-> files 1- >POST- >Successを実行できます。

于 2013-02-07T17:41:56.730 に答える
3

ファイルの数を確認するには、を使用しますdocument.getElementById(file).files.length。何度もループしたら、すべてのファイルをアップロードしました。これが私のサンプルです:

<html>
<head>
<script language="Javascript">
function multiupload(file){
count = 0;
alert(document.getElementById(file).files.length);

}

</script>
</head>
<body>
    <form method="post" action="" enctype="multipart/form-data">
    <input type="file" name="file" id="file" multiple>
    <input type="button" name="submit" value="Upload" onclick="multiupload('file');void(0);">
</form>
</body>
</html>

(出典:https ://developer.mozilla.org/en-US/docs/DOM/FileList )

于 2013-02-07T18:12:10.913 に答える