使用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(成功)我试图传递变量名称"上传" (注释)以便我可以向用户显示已成功上传文件的消息。
在我看来,我有类似的东西:
@if(Session::has('uploaded'))
<div class="notice-box"><strong>{{Session::get('uploaded')}}</strong></div>
@endif
我的目标是在上传后创建会话变量,然后使用它在View中显示消息。 我将不胜感激任何帮助。顺便说一下,我是Laravel的新手。
答案 0 :(得分:1)
使用会话外观添加它;
Session::flash('uploaded', 'Successfully uploaded.');
这将把它放在下一个请求的会话中,然后被删除。
将消息值传递给您传递回ajax请求的JSON数据,例如;
Response::json(array('success' => true, 'message' => 'Successfully uploaded file.'), 200);
编辑:在itachi推荐的错误中,这样就会调用ajax中的错误方法。
Response::make(array('success' => false, 'message' => 'Error while uploading file.'), 400);
然后,您可以检查成功标志,然后通过jQuery显示后续消息。