gpt4 book ai didi

javascript - 如何在 PHP 服务器端处理具有多个文件的 JavaScript 表单数据?

转载 作者:太空宇宙 更新时间:2023-11-04 15:41:06 27 4
gpt4 key购买 nike

我正在努力如何处理通过ajax发送到 Controller 的多个图像并将它们放入存储中。我读到我应该创建新的 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 对象时,我只能看到这个:

Inspecting element

最佳答案

首先你必须改变:

var formData = new FormData($('#formularz')[0]);

通过上面的代码,您只向 formdata 添加一个文件,但 multiple 属性也存在。因此,您必须将所有文件附加到 formdata 中,例如:

var frmData = new FormData();
$.each($('#formularz_images')[0].files, function(i, file) {
frmData.append('formularz[]', file);
});

你可以将它们放入 Controller 中,例如:

$data  = Input::all();

这里$data中包含了formularz索引,它包含了其中的所有图像。使用 foreach() 获取单个图像,例如:

foreach($data['formularz'] as $image)
{

}

关于javascript - 如何在 PHP 服务器端处理具有多个文件的 JavaScript 表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43864491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com