国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

Symfony2使用第三方庫Upload制作圖片上傳實例詳解

2024-05-04 23:42:48
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Symfony2使用第三方庫Upload制作圖片上傳的方法,結合實例形式較為詳細的分析了Symfony2使用第三方庫Upload的具體步驟與相關使用技巧,需要的朋友可以參考下
 

本文實例分析了Symfony2使用第三方庫Upload制作圖片上傳的方法。分享給大家供大家參考,具體如下:

我們在應用程序或者網站的個人資料里一般都有設置頭像的功能,這一章我們在Symfony2里用第三方的一個比較有名Upload庫來制作上傳圖片的功能。

一、安裝第三方庫

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

"codeguy/upload": "*"

Symfony2使用第三方庫Upload制作圖片上傳實例詳解

2.運行指令安裝

composer update

二、編碼

1.編寫uploadPic方法上傳圖片,并將上傳圖片的用戶id作為文件名

<?php/** * @author Sun * By blogs.zmit.cn http://blogs.zmit.cn * 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章原始出處 http://blogs.zmit.cn/6544.html * 中夢博客,作者信息和本聲明。否則將追究法律責任。 */namespace ZM/AdminBundle/Controller;use Symfony/Bundle/FrameworkBundle/Controller/Controller;use Symfony/Component/Filesystem/Filesystem;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 /Upload/Storage/FileSystem($path);    $file = new /Upload/File($str, $storage);    //如果文件名為空    if ($file->getName() != '') {      //設置文件名為用戶的id      $file->setName($user_id);      //驗證文件上傳      $file->addValidations(array(        //指定文件類型        new /Upload/Validation/Mimetype(array('image/png', 'image/jpg', 'image/jpeg', 'image/gif')),        //指定文件大小        new /Upload/Validation/Size('2M')      ));      //上傳文件      try {        //成功        $file->upload();        //文件名和擴展名        $file_name = $file->getNameWithExtension();      } catch (/Exception $e) {        //失敗!        $errors = $file->getErrors();      }    }    //返回文件名和擴展名    return $file_name;  }}

2.用戶上傳頭像,并將頭像全路徑存入數據庫表

<?php/** * 聯系人控制器 * @author Sun * By blogs.zmit.cn http://blogs.zmit.cn * 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章原始出處 http://blogs.zmit.cn/6544.html * 中夢博客,作者信息和本聲明。否則將追究法律責任。 */namespace ZM/ApiBundle/Controller;//引用寫好的上傳圖片方法uploadPic的Controller,并命名為BaseControlleruse ZM/AdminBundle/Controller/DefaultController AS BaseController;use Symfony/Component/HttpFoundation/Request;use Symfony/Component/HttpFoundation/Response;//繼承BaseControllerclass 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作為文件名,并修改表字段值為圖片的全路徑

Symfony2使用第三方庫Upload制作圖片上傳實例詳解

本文永久地址:http://blog.it985.com/6544.html
本文出自 IT985博客 ,轉載時請注明出處及相應鏈接。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东辽县| 安吉县| 襄垣县| 阿鲁科尔沁旗| 马边| 麟游县| 顺义区| 乌拉特前旗| 句容市| 阳朔县| 开远市| 鄱阳县| 项城市| 五原县| 马边| 浦县| 镇雄县| 拜泉县| 故城县| 班戈县| 嘉定区| 萨嘎县| 青冈县| 黔西县| 垣曲县| 平度市| 高雄市| 明光市| 嫩江县| 闽清县| 交城县| 昌江| 美姑县| 虞城县| 常州市| 崇礼县| 扬州市| 多伦县| 白河县| 仙游县| 漳平市|