Laravel 4 Laravel 4和uploadifile不工作始终获得500(内部服务器错误)
我有我的路线:Laravel 4 Laravel 4和uploadifile不工作始终获得500(内部服务器错误),laravel-4,uploadifive,Laravel 4,Uploadifive,我有我的路线: Route::get('/file', array( 'as' => 'files', 'uses' => 'fileController@getFileUpload' )); Route::post('/uploadfile', array( 'as' => 'uploadfile', 'uses' => 'fileController@postfileupload' )); 现在,我在/file路由上设置了uploa
Route::get('/file', array(
'as' => 'files',
'uses' => 'fileController@getFileUpload'
));
Route::post('/uploadfile', array(
'as' => 'uploadfile',
'uses' => 'fileController@postfileupload'
));
现在,我在/file路由上设置了uploadifive,并将post请求发送到/uploadfile
上传文件的代码如下:
$file = Input::file('file_upload');
$destinationPath = 'files/CDN/'.str_random(8);
echo $filename = $file->getClientOriginalName();
$extension =$file->getClientOriginalExtension();
$uploadSuccess = Input::file('file')->move($destinationPath, $filename);
但我总是得到500(内部服务器错误)
我查过我的目录CHMOD是0777
当我从/uploadfile和place中删除上述代码时,我正在链接到正确的路径
echo 200;
它返回成功
我也尝试过添加blade表单标签,但uploadifive实际上根本不依赖于表单元素。它使用AJAX发布 当您通过blade Laravel方法看到来自普通文件发布表单的响应的var_dump时,我终于找到了解决方法。您将发现Uploadfile对象是使用文件名创建的(在表单字段中指定)但另一方面,当您通过Uploadifive发送相同的请求时,您会发现它发送了一个数组,其中包含一个名为[FileData]的节点,该节点保存该文件的对象,因此基本上您需要将该对象指针指定给$file变量,如下所示,它将完美工作:
$data = Input::all();
$file = $data['Filedata'];
$destinationPath = public_path().'files/'.str_random(8);
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$uploadSuccess = $file->move($destinationPath, $filename);
if( $uploadSuccess ) {
return Response::json('success', 200);
} else {
return Response::json('error', 400);
}
类似于charm:)我认为您应该在最后一行使用
$file->move()
之所以$file->move()可以代替您的代码工作,是因为您尝试访问文件的两个不同字段名--“file\u upload”和“file”(查看第一行和最后一行)。将第一行更改为您在表单中指定的内容,并使用$file->move($destinationPath,$filename);在最后一行。嗨,我试着用$file替换它,但没有区别。它仍然显示相同的结果:请参见控制台http://scrumy.co.uk/file
my route:route::get('/file',array('as'=>'files','uses'=>'fileController@getFileUpload' )); 路由::post('/cdnUpload',数组('as'=>'cdnUpload','uses'=>'fileController@postFileUpload' ));代码>