【发布时间】:2019-07-26 15:51:39
【问题描述】:
我正在尝试使用 Ajax 请求在 Laravel 5.7 中创建上传功能。 编写此代码后,我在数据库中得到空值。因此,除了返回空值的文件之外,所有其他数据都被插入。
tasks.blade.php
<form method="post" id="addTask_form" name="addtask" enctype="multipart/form-data">
.......................
<div class="form-group">
<label>File</label>
<input type="file" name="file" id="file">
</div>
.............
</div>
<div class="modal-footer">
................
</div>
</form>
TasksController.php
function postdata(Request $request)
{
$validation = Validator::make($request->all(), [
.......
'file' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',
'status' => 'required',
]);
.............
if ($validation->fails())
{
foreach ($validation->messages()->getMessages() as $field_name => $messages)
{
...........
}
}
else
{
if($request->get('button_action') == 'insert')
{
if($request->hasFile('file') && $request->file('file')->isValid()){
$file = $request->file('file');
$file_name = str_random(30) . '.' . $file->getClientOriginalExtension();
$file->move(base_path() . '/assets/img', $file_name);
}
$task = new Task($request->input());
$task->save();
}
$output = array(
'error' => $error_array,
'success' => $success_output
);
echo json_encode($output);
}
谢谢
【问题讨论】:
-
你能显示你用来提交表单的javascript代码吗?
-
$('#addTask_form').on('submit', function(event){ event.preventDefault(); var form_data = $(this).serialize(); $.ajax({ url:"{{route('postdataroute')}}", method:"POST", data:form_data, dataType:"json", success:function(data) { if (data.error.length > 0) .................. -
请在您的问题中添加您的javascript代码
标签: jquery ajax laravel file-upload nullable