1
我掙扎如何處理發送通過AJAX到控制器,並把它們放到存儲多張圖片。我讀過,我應該使新的FormData對象,我做到了。如何在PHP服務器端處理多個文件的javascript formdata?
讓我們看看我的代碼:
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對象,我只能看到這一點:
我已經試過您的解決方案,它看上去不錯,但是當我試圖訪問'$(「#formularz」)[0] .files'出現問題。 –
好的。我找到了解決問題的方法。感謝您的解決方案。 –
我希望這對你有所幫助 –