在整理项目中遇到一个上传图片的功能,搜索了很长时间终于整明白了,小编能力有限,话不多说下边开始分享内容
第一步:
App\Http\Middleware\VerifyCsrfToken.php
修改(17行代码)
return parent::handle($request, $next);
为
return parent::addCookieToResponse($request, $next($request)); //屏蔽token验证为cookie
第二步:
在头部引入
<script type="text/javascript" src="{{ asset('assets/js/ajaxfileupload.js') }}"></script>
function ajaxFileUpload() //修改js文件
{
$.ajaxFileUpload
(
{
url:'ULR', //处理上传文件的服务端
secureuri:false,
fileElementId:'doc-form-file',
dataType: 'json',
success: function (data)
{
console.log(data); //上传成功,请填写自己需要的处理
}
}
)
return false;
}
第三步:
laravel 中填写上传代码
function upload(){
$thumb=$request->file('thumb');
$allowed_extensions = ["png", "jpg", "gif",'jpeg','gif']; //验证图片的类型
if ($thumb->getClientOriginalExtension() && !in_array($thumb->getClientOriginalExtension(), $allowed_extensions)) {
return ['error' => 'You may only upload png, jpg or gif.'];
}
$destinationPath = 'storage/uploads/'; //public 文件夹下面建 storage/uploads 文件夹
$extension = $thumb->getClientOriginalExtension();
$fileName = str_random(10).'.'.$extension; //设置文件名称
$thumb->move($destinationPath, $fileName); //移动文件到对应位置
$filePath = asset($destinationPath.$fileName); //上传成功返回图片访问地址
if($filePath){
ajax_return('0',$filePath); //成功
}else{
ajax_return('-1',$filePath);//失败
}
}