我正在处理一个涉及文件上传的项目。我正在使用DropzoneJS和Laravel来完成这个项目。一切似乎工作正常,我已正确包含js和css文件,也显示在示例中的形式,但问题是上传部分! Droped文件显示进度条转到100%,但一旦达到它就会返回错误,如此...
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Call to a member function getClientOriginalName() on a non-object","file":"C:\\wamp\\www\\localsite\\app\\controllers\\AssetsController.php","line":121}}
我知道当我return var_dump(Input::file('file));
获得输入数据数组时,上传过程无效...
..但...
当我检查像Input::hasFile('photo')
这样的文件时,似乎文件是emty但它有一个数组形式。
这是路线
Route::post('create/album','AssetsController@album');
这是控制器
public function album()
{
$file = Input::file('file');
$destinationPath = 'uploads';
$filename = $file->getClientOriginalName();
$uploadSuccsess = Input::file('file')->move($destinationPath, $filename);
if( $uploadSuccsess ) {
return Response::json('success', 200);
} else {
return Response::json('error', 400);
}
}
这是HTML
<form action="http://localhost/create/album" enctype="multipart/form-data" id="post-form-dropzone" class="dropzone">
</form>
<button type="submit" id="status-post-form-submit-btn" class="btn btn-sm btn-primary btn-post pull-right">Post</button>
这是JS
Dropzone.options.PostFormDropzone = { // The camelized version of the ID of the form element
acceptedFiles: "image/*", // Accept images only
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 100,
maxFiles: 60,
addRemoveLinks: true,
// The setting up of the dropzone
init: function() {
var myDropzone = this;
// First change the button to actually tell Dropzone to process the queue.
$("#status-post-form-submit-btn").click(function(e) {
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
});
}
}
我已经尝试了几个小时,但我似乎无法找到解决方案。
提前致谢。
答案 0 :(得分:3)
终于想出了如何解决这个问题,这就是解决了这个问题,这是我改变的控制器
$file = Input::file('file');
Image::make($file[0]->getRealPath())->resize(540, null, true)->save('assets/example.png');
如果有人问这些图像处理方法来自哪里,那就是使用http://intervention.olivervogel.net/image/getting_started/laravel
的类iam希望这有助于未来的人