1
複数の画像をajax経由でコントローラに送信し、それらを格納する方法を苦労しています。私は新しいものを作るべきだと読んだFormDataオブジェクト、と私はそれをしました。PHPサーバー側で複数のファイルを使用してjavascriptフォームデータを処理する方法は?
のは、私のコードを見てみましょう:
HTML:
<form enctype="multipart/form-data" id="formularz">
<label class="btn btn-sm btn-success" for="files">
<input id="files" type="file" name="zdjęcie[]" multiple style="display:none;" onchange="$('#upload-file-info').html($(this).val());">
<i class="fa fa-plus-circle" aria-hidden="true"></i> Dodaj zdjęcia
<input type="hidden" name="_token" value="{{Session::token()}}">
</label>
<label class="btn btn-sm btn-danger deleteImages">
<i class="fa fa-times-circle" aria-hidden="true"></i> Wyczyść
</label>
<br>
<div class="chosenImages">
<output id="list"></output>
</div>
</form>
JS:サーバー側で
var formData = new FormData($('#formularz')[0]);
$.ajax({
method:"POST",
url:postAddNews,
data: {
formData:formData,
_token:token
},
cache:false,
contentType: false,
processData: false,
success:function(data){
console.log("success");
console.log(data);
},
error: function(data){
console.log("error");
console.log(data);
}
});
私は(AJAX経由で送信せずに)そのようにそれを行うだろう。
$files = $request->file('zdjęcie');
$i = 1;
$filename = array();
foreach($files as $file) {
Storage::disk('local')->put('newsimages/'.$i.'.'.$file->extension(), file_get_contents($file));
$i++;
}
私が検査するときあなたはFORMDATAに一つだけのファイルを追加しているが、multiple
属性は上記のコードで
var formData = new FormData($('#formularz')[0]);
:あなたは変更する必要があり、すべての
、それは素敵なようだが、私は$ '(「#のformularz」)[0] .files'にアクセスしようとすると、問題が発生します。 –
私は問題を解決する方法を見つけました。あなたのソリューションをありがとう。 –
これがあなたに役立つことを願っています –