我正在尝试用laravel应用程序实现blueimp jquery文件上传。https://github.com/blueimp/jQuery-File-Upload
我已经使用插件设置了表单,它的工作和行为都符合预期,但我在laravel中创建服务器端脚本以处理上传时遇到了问题。
我更改了表单操作如下:
<form id="fileupload" action="{{ route('photos.post.upload') }}" method="POST"
enctype="multipart/form-data">
在main.js(插件的一部分)中,我将url设置为:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: '/photos/upload/'
});
在我的路由文件中,我创建了一个如下的路由:
Route::any('photos/upload', [
'as'=>'photos.post.upload',
'uses' => 'PhotosController@uploadImage'
]);
我在控制器中的功能:
public function uploadImage()
{
dd(Input::file());
return Response::json(
array(
"files" => array(
"name" => "post"
))
);
}
在这一点上,我只是想测试表单数据是否被接收。但是,上传时数据为空。
使用Route::any()
或Route::post()
,但得到301错误(永久移动)
在谷歌chrome中检查时,似乎POST正按预期用于上传,并且看起来文件已包含在内。
所以。
- 为什么我会出现301错误-javascript方面缺少什么
- 为什么
Input::file()
返回空
感谢的任何帮助
Laravel在URL中存在尾部斜杠的情况下重定向,就像在url: '/photos/upload/'
中一样,因此它将以301状态重定向到没有尾部斜杠的URL。