我想用Laravel 5.4做一个AJAX图像上传。除了文件输入上的move()
函数外,我的表单中的所有其他字段都正在工作,这会返回500错误。我添加了与下图相关的所有代码。当点击提交按钮时,我正在做e.preventDefault()
,然后启动ajax功能。
HTMLLaravel ajax图像上传“移动”功能创建500错误
{!! Form::open(['action' => '[email protected]','id' => 'createForm','files' => true]) !!}
<div class="form-group">
{!! Form::label('image', 'Project Image') !!}
{!! Form::file('image') !!}
</div>
{!! Form::submit('Create', ['id' => 'createSubmit', 'class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
AJAX
var formData = new FormData($('#formElem'));
$.ajax({
url: '{{ route('project.store') }}',
type: 'post',
contentType: false,
processData: false,
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
data: formData,
success: function(data) {
alert('success');
},
error: function(data) {
alert('error');
console.log(data);
}
});
PHP
if (isset($_FILES['image'])) {
$image = $_FILES['image'];
$image_filename = 'feature-' . $image['name'];
// THIS LINE CAUSES THE 500 ERROR
// $image->move(public_path('uploads'), $image_filename);
}
$ _FILES [ '形象']所示的var_dump
array(5) {
["name"]=>
string(12) "Homepage.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(23) "C:\xampp\tmp\php7AD.tmp"
["error"]=>
int(0)
["size"]=>
int(251159)
}
上传文件夹确实存在。
您是否制作在'public'目录'uploads'文件夹? –