javascript — сообщение об успешном завершении загрузки с использованием Dropzone в Laravel

Я использую Dropzone для загрузки файлов в Laravel 4.2, ниже моя функция, которая обрабатывает файлы после загрузки.

public function postDropFiles()
{
$file = Input::file('file');

$destinationPath = 'uploads/'.Auth::user()->username.'/files/'.date('Y-m-d');

$extension = File::extension($file->getClientOriginalName());
$filename =  time().str_random(12).'.'.$extension;

$upload_success = Input::file('file')->move($destinationPath, $filename);if( $upload_success ) {
return Response::json('success', 200);//->with('uploaded','Succesiful uploaded');
} else {
return Response::json('error', 400);
}

}

Коды работают нормально, как вы можете видеть, когда ответ равен 200 (успех), я пытаюсь передать имя переменной с именем «uploaded» (Commented), чтобы я мог отобразить сообщение пользователю, что файлы успешно загружены.

На мой взгляд, у меня есть что-то вроде этого:

@if(Session::has('uploaded'))
<div class="notice-box"><strong>{{Session::get('uploaded')}}</strong></div>
@endif

Моя цель — создать переменную сеанса после загрузки, а затем использовать ее для отображения сообщения в представлении.
Буду признателен за любую помощь. Кстати, я новичок в Laravel.

0

Решение

ЕСЛИ ИСПОЛЬЗУЕТ НЕ AJAX ЗАПРОС

Добавьте его, используя фасад Session;

Session::flash('uploaded', 'Successfully uploaded.');

Это поместит его в сеанс для следующего запроса, а затем удалит.

ЕСЛИ ЗАПРОС AJAX

Передайте значение сообщения через данные JSON, которые вы передаете обратно в запрос ajax, например;

Response::json(array('success' => true, 'message' => 'Successfully uploaded file.'), 200);

Редактировать: При ошибке, как рекомендовано itachi, так будет вызываться метод ошибки в вашем ajax.

Response::make(array('success' => false, 'message' => 'Error while uploading file.'), 400);

Затем вы можете проверить флаг успеха, а затем отобразить последующее сообщение, где бы вы ни хотели, чтобы оно отображалось через jQuery.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]