laravel图片上传
2016-08-25 17:14
246 查看
其实我也是一个新手,关于用laravel实现图片上传,也是学习了很久。
第一 关于路由
第二个路由是图片上传,第三个路由是图片读取。
第二 关于控制器上传图片
对于上传的图片先对其名字进行处理,然后再通过move函数移动上传的图片到对应的项目的位置,最后在把文件的名字上传到数据库,并返回上传状态。
第三 关于控制器读取数据
先判断数据库里是否有图片,没有就显示一张默认的图片,有就读取图片的名字、路径、以及图片的格式,然后根据图片的路径显示图片。
第一 关于路由
Route::get('pict','PicController@index'); Route::post('file','PicController@store'); Route::get('p','PicController@readpict');
第二个路由是图片上传,第三个路由是图片读取。
第二 关于控制器上传图片
//上传图片 public function store(){ ob_end_clean(); header("Content-Type: text/html; charset=utf-8"); $data=[]; if(!request::hasFile('photo')){ $requsetJson=array( "state"=>"field", ); $data["status"]=false; $data["requestJson"]=$requsetJson; return $data; }else{ $file=Request::file('photo'); //文件的名字 $fileName=$file->getClientOriginalName(); $storage_path=config("my_config.image_upload_dir").session("user.user_id")."/"; //dd($storage_path); //存储文件的绝对路径 $path=$_SERVER['DOCUMENT_ROOT'].$storage_path;//根目录 // dd($path); $name=date('YmdHis').session("user.user_id").rand(1000,9999).".".$file->getClientOriginalExtension();//生成路径// dd($name); $file->move($path,$name);//移动 $input_data["picture_name"]=$storage_path.$name; $input_data["picture_format"]=$file->getClientOriginalExtension(); if($id=DB::table("picture")->insertGetId($input_data)){ $requsetJson=array( "state"=>"SUCCESS", "url"=>config("my_config.website_url")."/getImage/".$id, "title"=>$id, "original"=>"", "type"=>".".$file->getClientOriginalExtension(), "size"=>$file->getClientSize() ); $data["status"]=true; $data["requestJson"]=$requsetJson; return $data; }else{ $requsetJson=array( "state"=>"插入数据库失败" ); $data["status"]=false; $data["requestJson"]=$requsetJson; return $data; } } }
对于上传的图片先对其名字进行处理,然后再通过move函数移动上传的图片到对应的项目的位置,最后在把文件的名字上传到数据库,并返回上传状态。
第三 关于控制器读取数据
public function readpict($image_id=2){ if($image_id==0){ header("Content-type:image/jpeg");//表明请求页面的内容是jpeg格式的图像 readfile($_SERVER["DOCUMENT_ROOT"]."/pic/1.jpg"); } $imageData=DB::table("picture") ->where("picture_id","=",$image_id) ->first(); // dd($imageData); if($imageData!=NULL){ $path=$imageData->picture_name; $format=$imageData->picture_format; switch($format){ case "gif":$ctype="image/gif";break; case "png":$ctype="image/png";break; case "jpeg": case "jpg":$ctype="image/jpeg";break; default:$ctype="image/jpeg"; } header("Content-type:".$ctype); readfile($_SERVER["DOCUMENT_ROOT"]."/pic/1.jpg"); }else{ header("Content-type:image/jpeg"); readfile($_SERVER["DOCUMENT_ROOT"]."/pic/1.jpg"); } }}
先判断数据库里是否有图片,没有就显示一张默认的图片,有就读取图片的名字、路径、以及图片的格式,然后根据图片的路径显示图片。
相关文章推荐
- Laravel5.2上传图片至七牛云
- laravel上传图片报错
- Laravel 5.2 整合 Uploadify 上传图片
- laravel框架上传图片实时预览
- laravel图片上传
- Laravel 5.1 Ajax上传图片方法
- laravel上传图片
- laravel post 上传图片
- laravel5.4文件存储实战利用ajax上传图片
- laravel 编辑验证 图片上传 PHP+mysql
- 6步实现laravel图片上传
- laravel + qiniu 图片音频上传存储
- laravel 图片上传 函数
- laravel结合七牛实现base64的图片上传
- c# 上传图片流,php端(laravel框架)接收处理方法
- laravel5.1框架下实现图片上传
- Laravel框架中上传图片
- laravel下使用阿里云oss上传图片
- laravel下 jquery-from 上传图片立即显示
- laravel上传图片之后,目录有图片,但是访问不到(404)