【发布时间】:2016-05-09 03:07:30
【问题描述】:
我正在尝试使用 ajax 上传图像,但我得到:加载资源失败:服务器响应状态为 500(内部服务器错误)。这是我的ajax:
$('document').ready(function() {
$('#uploadImage').change(function(){
image = $('#uploadImage').val;
token = $('#token').val();
$.ajax ({
type: 'POST',
url: '/photo',
data: { image , token },
success: function(){
$('.img-thumbnail').attr("src", 'images/new_image.png');
}
})
})
});
这是我的路线:Route::post('/photo', 'ShopsController@uploadPhoto');
这是我的控制器:
public function uploadPhoto(Request $request)
{
//Sets file name according to authenticated shop id
$imageName = 'new_image.png';
//Save file to public/images
$img = Image::make($request->file('image'));
$img->resize(380, 300)->save('images/' . $imageName, 60);
}
这是我的表格:
<form action="{{ action('ShopsController@store') }}" method="post" enctype="multipart/form-data">
<input id="token" type="hidden" name="_token" value="{{ csrf_token() }}">
<input id="uploadImage" class="btn btn-upload" type="file" name="image"> </form>
【问题讨论】:
-
您的表单操作应该是
action('ShopsController@uploadPhoto'),不是吗?根据您发布到的路线? -
检查 AccessControl 中的访问权限
-
注意下划线 int 标记 (_token) - 确保在 ajax 帖子的数据中发送相同的下划线
-
不只是 ajax 帖子应该指向 ShopsController@uploadPhoto。 AccessControl 是什么意思。我实际上是 ajax 的初学者。
-
您的网络服务器是否对存储文件夹或存储图像的位置具有写入权限?