2013-12-02 3 views
0

Я работаю над проектом, который включает в себя загрузку файлов. Я использую DropzoneJS и Laravel для этого проекта. Кажется, что все работает нормально, я правильно включил js и css-файлы, также форма появляется, как в примере, но проблема в том, что часть загрузки! Файлы показать падает на порядок прогресс бар пойти на 100%, но как только достиг он возвращает ошибку, как это ...Laravel и Dropzonejs, файлы не загружены правильно

{"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}} 

Я знаю, что процесс загрузки работает ине becouse, когда я return var_dump(Input::file('file)); я получить массив входных данных. ..

..но ...

Когда я проверить файл, как этот Input::hasFile('photo'), кажется, что файл является Emty, но он имеет форму массива.

это маршрут

Route::post('create/album','[email protected]'); 

Это контроллер

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

У вас есть опечатка в вашей форме HTML: 'id = post-form-dropzone'', отсутствует '' 'открытия. –

+0

@ManuelPedrera Извините, но это не проблема, это просто копия вставки. – mateooo

ответ

3

наконец понял, как это исправить, это то, что у него это исправил мой измененный контроллер

$file = Input::file('file'); 
    Image::make($file[0]->getRealPath())->resize(540, null, true)->save('assets/example.png'); 

Если кто-то спрашивает, где же эти методы работы с изображениями пришли из этого класса IAM с помощью http://intervention.olivervogel.net/image/getting_started/laravel

Надеюсь, это поможет кому-то в fututre

Смежные вопросы