Я использую 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.
Добавьте его, используя фасад Session;
Session::flash('uploaded', 'Successfully uploaded.');
Это поместит его в сеанс для следующего запроса, а затем удалит.
Передайте значение сообщения через данные 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.
Других решений пока нет …