首页 PHP小记正文

laravel 图片上传

刘伟 PHP小记 2018-03-28 205 0

laravel1.首先在配置文件/config/filesystems.php 文件下配置保存路径。 即:在 ‘disks’=>[] 里面添加 如:’shangchuan’=>[‘drive’=>’local’, ‘root’=>’uploadImage’] //当前配置项下的图片上传的目录地址名称,这里定义的值就是相对于当前项目访问的根目录 public里面的文件夹名称。 2.再在上传控制器中写上传的方法: class Upload extends Controller { // /** * 上传图片方法 * 使用laravel框架完成上传图片的功能,一定需要当前项目开发所使用的php版本中对应的一个叫做fileinfo的扩展文件必须安装和支持,因为laravel框架上传图片会使用到相关扩展功能,如果是apache环境,默认情况下,好像是php5.4以上会自动安装fileinfo扩展并开启,如果是nginx环境,那么就需要你去自己服务器上找到当前项目所使用的php版本,并且找到安装扩展,将fileinfo扩展安装,才能实现upload方法实现的图片上传 */ public function upload(Request $request){ //使用$request调用file属性获取当前上传的图片信息 $img = $request->file; // 获得 img 文件 //判断当前获取到的图片数据是否有错误,如果有错误,不用将错误的数据上传,只有正确的时候,才将获取到的图片上传到服务器上的某个文件夹内 if ($img->isValid()){ //store方法第一个参数是:填写在你配置好的磁盘根目录下创建的文件夹名称,不能带上图片文件的名称,因为图片的文件名由系统自动生成,并且会帮我们保证唯一 //第二个参数是可选项,可以填写,如果不填写第二个参数,那么上传图片的默认磁盘就会去找config/filesystems.php文件中的default所指向的local配置项指定的磁盘路径,如果你传递了第二个参数,上传图片的时候,就会去filesystems.php文件中的disks数组中找你传递的参数值的对应路径进行上传 $path = $img->store(date('Y/m/d',time()),'shangchuan'); //上传图片成功后,要返回json数据给前台hdjs使用,那么返回数据的格式就要按照hdjs要求的来,这个时候,去看hdjs手册中的图片上传的后台处理相关内容,我们要的是返回数据的格式 return json_encode(['valid' => 1, 'message' => asset('/uploadImages/' . $path)]); //如果使用asset方法将返回的图片路径作为参数传递进去,那么该方法会改回给我们一个带上完整域名的图片地址 } //当有错误的时候,if判断不会运行,我们在这里返回错误的信息 return ['valid' => 0, 'message' => '兄die,图片上传失败了!!!']; } } 3.要配置路由,可以在web.php路由里面 配置上传路由 例如: Route::any(‘/shangchaun’,’commend\\Upload@upload’); 4. 引入hdjs的jq: 5. 写前台逻辑。

      
< img src="/node_modules/hdjs/dist/static/image/nopic.jpg" class="img-responsive img-thumbnail" width="150"> ×

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论