2017-06-17 12 views
-1

複数のファイル(例:a.txt、b.txt、c.txt)をアップロードするには、アップローダを何回かクリックしますが、サーバは最後のファイル(c.txt)。複数のファイルをアップロードするために必要なことはありますか?複数のファイルを入力するときに1つのファイルのみをアップロードする場合

<form action="storeArticle" method="post" enctype="multipart/form-data"> 
    <input type="file" name="file[]" multiple > 
    <input type="submit" name="submit" class="submit" id="submit" value="submit" /> 
</form> 

私が実装したい何==========
https://stackoverflow.com/questions/askのようなものです。ユーザーは画像アイコンを何度でもクリックすることができ、最後にすべての画像がサーバーに正しく送信されます。

答えて

0

アップロード者を数回クリックすると、ファイルを追加するたびにファイルエクスプローラを開く必要があるのですか?そうであれば、以前に選択された他のファイルが失われます。

これを修正する方法は、ユーザーがファイルエクスプローラを一度開くだけで、必要な各ファイルをCtrl/cmd +クリックすることです。

ファイルエクスプローラを開いたときにファイル入力が選択されたファイルを削除してから、キャンセルを押します。私はこれをテストすることはできませんので

EDIT

だけの思考は、私が電話でんだけど、多分あなたはそれで遊ぶことができます...

になります入力フィールドを持っていますそこから最初から最後まで。彼らが最初のファイルを選択するとき、彼らはもはやそのファイル入力を開くことをクリックしてボタン(<label>を使用することをお勧めします)をクリックします。代わりに、動的ファイル入力を追加し、ラベルのfor属性を動的に追加されたファイル入力と同じにします。動的入力を追加した後、その入力に対してリスナーを作成すると、ユーザーがその新しい入力でファイルを選択すると、元のinput.files配列に追加されます。これが起こると、プロセスは再び始まります。動的入力はファイル選択を処理し、ファイルが選択されると元の入力に渡します。

実際のchoose fileボタンを非表示にするのが最善の理由は、時には少し矛盾する可能性があるからです。代わりに、入力エレメントのidをlabel属性として使用すると、ラベルをクリックするとファイルアップロードフィールドが確実にフォーカスされます。

+0

私は質問に詳細を追加しました。 – user7328234

+0

さて、送信ボタンがクリックされるまでファイルを保存して一度にアップロードしてください。 PHPでアップロードする際にファイル入力が実際のファイルにアクセスする必要があるため、これを行う方法はないと思います。サーバーにイメージを与えるには、tmpファイルが必要です。ファイル入力がこの情報を持っている唯一の方法は、イメージがファイル配列の内側にある場合です。 – SidTheBeard

+0

@SSidTheBeardファイルの入力を除いて、同じアイコンを何度かクリックするだけで(https://stackoverflow.com/questions/askのように)選択したファイルを保存し、すべてのファイルをサーバーに送信する方法はありますか? – user7328234

0
To upload multiple files you have to select multiple files at once by pressing on ctrl(windows) or cmd(mac) button and then press submit button. 
I think in your case you have clicked the uploader button multiple times and each time you have selected only on file and in the end you have clicked the submit button so it will upload only the last file you have selected. 
0

これをコメントとして追加するつもりでしたが、できません。

入力をクローニングしてフォームに追加しようとしましたか?

ユーザーがファイルを選択すると、新しい入力を追加したり、新しい入力を追加したり、「入力済み」の入力を隠したり、新しい入力を追加したり、「入力済みの」入力を読み取り専用としてマークすることができますそれらを削除するためのメソッドを追加する)。

関連する問題