Php Laravel如何在两个表中进行多文件上传和存储数据
我有一个Php Laravel如何在两个表中进行多文件上传和存储数据,php,jquery,ajax,laravel,axios,Php,Jquery,Ajax,Laravel,Axios,我有一个,可以上传多个文件。多个文件应存储在不同的表中,但由于某些原因,这些文件未存储在数据库中 表格如下: <form method="POST" action="{{ route('application.store') }}" id="form" enctype="multipart/form-data"> <input name="name" type="text" /> <input name="email" type="text" />
,可以上传多个文件。多个文件应存储在不同的表中,但由于某些原因,这些文件未存储在数据库中
表格如下:
<form method="POST" action="{{ route('application.store') }}" id="form" enctype="multipart/form-data">
<input name="name" type="text" />
<input name="email" type="text" />
<input name="phone" type="text" />
<input name="additional_files" type="file" multiple />
</form>
我的文件模型如下所示:
class SingleApplicationFile extends Model {
protected $table = "additional_files";
protected $fillable = [
'attachment', 'files_id', 'attachment_name',
'attachment_size', 'application_id'
];
public function files()
{
return $this->belongsTo('App\Application');
}
}
然后用JS发布:
var additional_files = [];
$("#form input[name='additional_files']").change(
function() {
additional_files = [];
for (var i = 0; i < $(this)[0].files.length; i++) {
additional_files.push($(this)[0].files[i]);
}
}
);
$('#form button[type="submit"]').click(function(e) {
e.preventDefault();
var formData = new FormData();
formData.append(
"name",
$("#form")
.find('input[name="name"]')
.val()
);
formData.append(
"email",
$("#form")
.find('input[name="email"]')
.val()
);
formData.append(
"phone",
$("#form")
.find('input[name="phone"]')
.val()
);
if (additional_files.length > 0) {
formData.append("additional_files", additional_files);
}
axios
.post($("#form").attr("action"), formData)
.then(response => {
// some success message
}
})
.catch(error => {
console.log("ERR: ", error);
});
});
我不知道我做错了什么。我试图在输入上添加附加的\u文件[]
,>
,但没有成功
有人能帮我吗?您无法从查看页面发送多个文件。
您应该在输入类型中使用[]
此选项
<input name="additional_files[]" type="file" multiple />
在此之后,只有文件将作为数组上载。然后可以遍历数组,然后可以执行其他操作。
如果您遇到任何问题,请告诉我。您无法从查看页面发送多个文件。
您应该在输入类型中使用[]
此选项
<input name="additional_files[]" type="file" multiple />
在此之后,只有文件将作为数组上载。然后可以遍历数组,然后可以执行其他操作。
如果您遇到任何问题,请告诉我。可能重复的可能重复的我尝试添加其他\u文件[]
,但运气不佳:-/no,我没有收到任何错误。。。我怀疑hasFile
或foreach
-loop有问题。您是否尝试在foreach
函数中添加$request->file('additional_files)
,而不将其转换为变量?试试看,让我知道我试着做了dd(request()->file('additional_files'))
并且它返回null
即使当我试图在你的js文件中上传文件时,添加相同的方法:if(additional_files[].length>0){formData.append(“additional_files[]”,additional_files[])}
我试图添加附加的\u文件[]
但是运气不好:-/no,我没有收到任何错误。。。我怀疑hasFile
或foreach
-loop有问题。您是否尝试在foreach
函数中添加$request->file('additional_files)
,而不将其转换为变量?试试看,让我知道我试着做了dd(request()->file('additional_files'))
并且它返回null
即使当我试着在你的js文件中上传文件时,添加相同的方法:if(additional_files[].length>0){formData.append(“additional_files[]”,additional_files[])}
<input name="additional_files[]" type="file" multiple />