我正在尝试使用 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'
]);
我在 Controller 中的功能:
public function uploadImage()
{
dd(Input::file());
return Response::json(
array(
"files" => array(
"name" => "post"
))
);
}
此时我只想测试表单数据是否被接收。但是上传时数据为空。
使用 Route::any()
或 Route::post()
但收到 301 错误(永久移动)
在 google chrome 中检查,发现 POST 正在按预期用于上传,并且看起来文件已包含在内。
所以。
- 为什么我会收到 301 错误 - 我在 javascript 方面缺少什么
- 为什么
Input::file()
返回空
感谢任何帮助
最佳答案
如果 URL 中存在尾部斜杠,Laravel 会进行重定向,就像 url: '/photos/upload/'
中那样,因此它将以 301 状态重定向到 URL,而无需尾部斜杠。
关于javascript - bootstrap jquery文件上传和laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799624/