加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Symfony2使用第三方库Upload制作图片上传实例详解

发布时间:2020-12-13 03:07:24 所属栏目:PHP教程 来源:网络整理
导读:《:Symfony2使用第三方库Upload制作图片上传实例详解》要点: 本文介绍了:Symfony2使用第三方库Upload制作图片上传实例详解,希望对您有用。如果有疑问,可以联系我们。 本文实例分析了Symfony2使用第三方库Upload制作图片上传的办法.供大家参考研究

《:Symfony2使用第三方库Upload制作图片上传实例详解》要点:
本文介绍了:Symfony2使用第三方库Upload制作图片上传实例详解,希望对您有用。如果有疑问,可以联系我们。

本文实例分析了Symfony2使用第三方库Upload制作图片上传的办法.分享给大家供大家参考,具体如下:PHP教程

我们在应用程序或者网站的个人资料里一般都有设置头像的功能,这一章我们在Symfony2里用第三方的一个比较有名Upload库来制作上传图片的功能.PHP教程

一、安装第三方库PHP教程

1.在composer.json文件中的”require”中加入PHP教程

"codeguy/upload": "*"

:Symfony2使用第三方库Upload制作图片上传实例详解PHP教程

2.运行指令安装PHP教程

composer update

二、编码PHP教程

1.编写uploadPic办法上传图片,并将上传图片的用户id作为文件名PHP教程

<?php
/**
 * @author Sun
 * By blogs.zmit.cn http://blogs.zmit.cn
 * 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 http://blogs.zmit.cn/6544.html
 * 中梦博客,作者信息和本声明.否则将追究法律责任.
 */
namespace ZMAdminBundleController;
use SymfonyBundleFrameworkBundleControllerController;
use SymfonyComponentFilesystemFilesystem;
class DefaultController extends Controller {
  public function indexAction($name) {
    return $this->render('ZMAdminBundle:Default:index.html.twig',array('name' => $name));
  }
  /**
   * 上传图片
   *
   * @param type $user_id 用户的id,用作文件名
   * @param type $str   表单中file类型的input的name
   * @param type $path  保存路径
   * @return type
   */
  public function uploadPic($user_id,$str,$path) {
    $fs = new Filesystem();
    //检查路径是否存在
    if (!$fs->exists($path)) {
      //如果不存在,创建目录
      $fs->mkdir($path,0700);
    }
    //使用Upload库
    $storage = new UploadStorageFileSystem($path);
    $file = new UploadFile($str,$storage);
    //如果文件名为空
    if ($file->getName() != '') {
      //设置文件名为用户的id
      $file->setName($user_id);
      //验证文件上传
      $file->addValidations(array(
        //指定文件类型
        new UploadValidationMimetype(array('image/png','image/jpg','image/jpeg','image/gif')),//指定文件大小
        new UploadValidationSize('2M')
      ));
      //上传文件
      try {
        //成功
        $file->upload();
        //文件名和扩展名
        $file_name = $file->getNameWithExtension();
      } catch (Exception $e) {
        //失败!
        $errors = $file->getErrors();
      }
    }
    //返回文件名和扩展名
    return $file_name;
  }
}

2.用户上传头像,并将头像全路径存入数据库表PHP教程

<?php
/**
 * 联系人控制器
 * @author Sun
 * By blogs.zmit.cn http://blogs.zmit.cn
 * 原创作品,作者信息和本声明.否则将追究法律责任.
 */
namespace ZMApiBundleController;
//引用写好的上传图片办法uploadPic的Controller,并命名为BaseController
use ZMAdminBundleControllerDefaultController AS BaseController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
//继承BaseController
class ContactController extends BaseController {
  /**
   * 用户上传头像
   *
   * @return Response
   */
  public function uploadHeadAction() {
    $request = Request::createFromGlobals()->request;
    $user_id = $request->get('user_id');
    //判断是否有文件上传
    if (isset($_FILES['head']) && $_FILES['head'] != '') {
      $conn = $this->getDoctrine()->getConnection();
      $data = $conn->fetchAssoc("SELECT id,head FROM contact WHERE id = ? LIMIT 1",array($user_id));
      //判断用户是否存在
      if(!empty($data['id'])) {
        //设置图片保存路径
        $path = 'image/head/';
        //获取上传文件后返回的文件名和扩展名
        $file_name = $this->uploadPic($user_id,'head',$path);
        //修改用户contact表head头像字段的值
        $conn->executeUpdate("UPDATE contact SET head = ? WHERE id = ?",array($path . $file_name,$user_id));
        $result['flag'] = 1;
        $result['content'] = '上传头像成功!';
      } else {
        $result['flag'] = 3;
        $result['content'] = '用户不存在!';
      }
    }else{
      $result['flag'] = 2;
      $result['content'] = '上传失败,没有选择图片!';
    }
    return new Response(json_encode($result),'200',array('Content-Type' => 'application/json'));
  }
}

这样图片就上传成功,将用户的id作为文件名,并修改表字段值为图片的全路径PHP教程

:Symfony2使用第三方库Upload制作图片上传实例详解PHP教程

本文永久地址:http://blog.it985.com/6544.html
本文出自 IT985博客,转载时请注明出处及相应链接.PHP教程

更多关于PHP框架相关内容感兴趣的读者可查看本站专题:《php优秀开发框架总结》,《codeigniter入门教程》,《CI(CodeIgniter)框架进阶教程》,《Yii框架入门及常用技巧总结》及《ThinkPHP入门教程》PHP教程

希望本文所述对大家基于Symfony框架的PHP程序设计有所赞助.PHP教程

编程之家培训学院每天发布《:Symfony2使用第三方库Upload制作图片上传实例详解》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读