最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年02月04日 11:37:56   作者:Sun  
這篇文章主要介紹了Symfony2使用第三方庫Upload制作圖片上傳的方法,結(jié)合實例形式較為詳細(xì)的分析了Symfony2使用第三方庫Upload的具體步驟與相關(guān)使用技巧,需要的朋友可以參考下

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

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

一、安裝第三方庫

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

"codeguy/upload": "*"

2.運行指令安裝

composer update

二、編碼

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

<?php
/**
 * @author Sun
 * By blogs.zmit.cn http://blogs.zmit.cn
 * 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處 http://blogs.zmit.cn/6544.html
 * 中夢博客,作者信息和本聲明。否則將追究法律責(zé)任。
 */
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)) {
      //如果不存在,創(chuàng)建目錄
      $fs->mkdir($path, 0700);
    }
    //使用Upload庫
    $storage = new \Upload\Storage\FileSystem($path);
    $file = new \Upload\File($str, $storage);
    //如果文件名為空
    if ($file->getName() != '') {
      //設(shè)置文件名為用戶的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.用戶上傳頭像,并將頭像全路徑存入數(shù)據(jù)庫表

<?php
/**
 * 聯(lián)系人控制器
 * @author Sun
 * By blogs.zmit.cn http://blogs.zmit.cn
 * 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處 http://blogs.zmit.cn/6544.html
 * 中夢博客,作者信息和本聲明。否則將追究法律責(zé)任。
 */
namespace ZM\ApiBundle\Controller;
//引用寫好的上傳圖片方法uploadPic的Controller,并命名為BaseController
use ZM\AdminBundle\Controller\DefaultController AS BaseController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
//繼承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'])) {
        //設(shè)置圖片保存路徑
        $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作為文件名,并修改表字段值為圖片的全路徑

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

更多關(guān)于PHP框架相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php優(yōu)秀開發(fā)框架總結(jié)》,《codeigniter入門教程》,《CI(CodeIgniter)框架進(jìn)階教程》,《Yii框架入門及常用技巧總結(jié)》及《ThinkPHP入門教程

希望本文所述對大家基于Symfony框架的PHP程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解yii2實現(xiàn)分庫分表的方案與思路

    詳解yii2實現(xiàn)分庫分表的方案與思路

    這篇文章主要介紹了利用yii2實現(xiàn)分庫分表的方案與思路,在研究yii2如何分庫分表之前,我先對yii2的核心概念和框架結(jié)構(gòu)做了一個初步的探索,從而找到分庫分表的思路。有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • PHP創(chuàng)建自己的Composer包方法

    PHP創(chuàng)建自己的Composer包方法

    這篇文章主要介紹了PHP創(chuàng)建自己的Composer包方法
    2018-04-04
  • php中memcache 基本操作實例

    php中memcache 基本操作實例

    本文實例講述了PHP中Memcache的基本操作及用法。分享給大家供大家參考。有需要的小伙伴快來研究下吧。
    2015-05-05
  • Laravel5.4簡單實現(xiàn)app接口Api Token認(rèn)證方法

    Laravel5.4簡單實現(xiàn)app接口Api Token認(rèn)證方法

    這篇文章主要介紹了Laravel5.4簡單實現(xiàn)app接口Api Token認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • laravel-admin的圖片刪除實例

    laravel-admin的圖片刪除實例

    今天小編就為大家分享一篇laravel-admin的圖片刪除實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • PHP代碼保護--Zend Guard的使用詳解

    PHP代碼保護--Zend Guard的使用詳解

    本篇文章是對zend guard的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Symfony2安裝第三方Bundles實例詳解

    Symfony2安裝第三方Bundles實例詳解

    這篇文章主要介紹了Symfony2安裝第三方Bundles的方法,結(jié)合實例形式分析了Symfony2通過composer來安裝Bundle的具體步驟與相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • PHP微信開發(fā)之有道翻譯

    PHP微信開發(fā)之有道翻譯

    這篇文章主要為大家詳細(xì)介紹了PHP微信開發(fā)之簡單實現(xiàn)有道翻譯的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • PHP無限循環(huán)獲取MySQL中的數(shù)據(jù)實例代碼

    PHP無限循環(huán)獲取MySQL中的數(shù)據(jù)實例代碼

    最近公司有個需求需要從MySQL獲取數(shù)據(jù),然后在頁面上無線循環(huán)的翻頁展示.其實這個功能可以通過jq實現(xiàn),也可以通過php+mysql實現(xiàn),下面小編給大家分享基于PHP無限循環(huán)獲取MySQL中的數(shù)據(jù)實現(xiàn)方法,感興趣的朋友一起看看吧
    2017-08-08
  • 支持中文、字母、數(shù)字的PHP驗證碼

    支持中文、字母、數(shù)字的PHP驗證碼

    本文給大家分享的是一個可以生產(chǎn)5種驗證碼的php類,該類的對象能動態(tài)獲取驗證碼圖片,驗證碼字符保存在SESSION中 又要的小伙伴可以參考下。
    2015-05-05

最新評論

虞城县| 壶关县| 交城县| 城固县| 水富县| 庆云县| 应用必备| 德阳市| 陇南市| 芜湖县| 连山| 老河口市| 绥中县| 海南省| 肥西县| 深泽县| 玉田县| 房山区| 宁安市| 宁安市| 卓尼县| 冷水江市| 德惠市| 蓬莱市| 平陆县| 永宁县| 永平县| 桃园县| 黑河市| 清苑县| 隆子县| 普兰店市| 柳州市| 潍坊市| 贵定县| 苗栗市| 耒阳市| 盱眙县| 江津市| 罗田县| 白水县|