Laravel和Dropzonejs,文件未正确上传

时间:2013-12-02 23:27:14

标签: javascript php laravel laravel-4 dropzone.js

我正在处理一个涉及文件上传的项目。我正在使用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();
    });


  }

}

我已经尝试了几个小时,但我似乎无法找到解决方案。

提前致谢。

1 个答案:

答案 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

希望这有助于未来的人