目錄
Symfony2使用第三方库Upload制作图片上传实例详解,
您可能感兴趣的文章:
首頁 php教程 php手册 Symfony2使用第三方库Upload制作图片上传实例详解,

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

Jun 13, 2016 am 08:46 AM
圖片上傳

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

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

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

一、安装第三方库

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

"codeguy/upload": "*"

登入後複製

2.运行指令安装

composer update

登入後複製

二、编码

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

<&#63;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.用户上传头像,并将头像全路径存入数据库表

<&#63;php
/**
 * 联系人控制器
 * @author Sun
 * By blogs.zmit.cn http://blogs.zmit.cn
 * 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 http://blogs.zmit.cn/6544.html
 * 中梦博客,作者信息和本声明。否则将追究法律责任。
 */
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 = &#63; 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 = &#63; WHERE id = &#63;", 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博客 ,转载时请注明出处及相应链接。

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

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

您可能感兴趣的文章:

  • Symfony2实现在doctrine中内置数据的方法
  • Symfony2安装第三方Bundles实例详解
  • Symfony2在Nginx下的配置方法图文教程
  • Symfony2安装的方法(2种方法)
  • Symfony2 session用法实例分析
  • 高性能PHP框架Symfony2经典入门教程
  • Symfony学习十分钟入门经典教程
  • Symfony数据校验方法实例分析
  • symfony表单与页面实现技巧
  • Symfony2开发之控制器用法实例分析
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

微信小程式實現圖片上傳功能 微信小程式實現圖片上傳功能 Nov 21, 2023 am 09:08 AM

微信小程式實現圖片上傳功能隨著行動網路的發展,微信小程式已經成為了人們生活中不可或缺的一部分。微信小程式不僅提供了豐富的應用場景,還支援開發者自訂功能,其中包括圖片上傳功能。本文將介紹如何在微信小程式中實作圖片上傳功能,並提供具體的程式碼範例。一、前期準備工作在開始編寫程式碼之前,我們需要先下載並安裝微信開發者工具,並註冊成為微信開發者。同時,也需要了解微信

使用CakePHP框架實現圖片上傳和顯示的步驟 使用CakePHP框架實現圖片上傳和顯示的步驟 Jul 29, 2023 pm 04:21 PM

使用CakePHP框架實現圖片上傳和顯示的步驟引言:在現代Web應用程式中,圖片上傳和顯示是常見的功能需求。 CakePHP框架為開發者提供了強大的功能和便利的工具,使得實現圖片上傳和顯示變得簡單且有效率。本文將向您介紹如何使用CakePHP框架來實現圖片上傳和顯示。步驟1:建立文件上傳表單首先,我們需要在檢視文件中建立表單,以便使用者上傳圖片。以下是一個範例的

Vue技術開發如何處理圖片上傳與壓縮 Vue技術開發如何處理圖片上傳與壓縮 Oct 08, 2023 am 10:58 AM

Vue技術開發如何處理圖片上傳和壓縮在現代web應用中,圖片上傳是一個非常常見的需求。然而,由於網路傳輸和儲存等方面的原因,直接上傳原始的高解析度圖片可能會導致上傳速度慢和儲存空間的大量浪費。因此,對於圖片的上傳和壓縮是非常重要的。在Vue技術開發中,我們可以使用一些現成的解決方案來處理圖片上傳和壓縮。以下將介紹如何使用vue-upload-compone

如何使用PHP和Vue實現圖片上傳功能 如何使用PHP和Vue實現圖片上傳功能 Sep 25, 2023 pm 03:17 PM

如何使用PHP和Vue實現圖片上傳功能在現代網頁開發中,圖片上傳功能是非常常見的需求。本文將詳細介紹如何使用PHP和Vue來實現圖片上傳功能,並提供具體的程式碼範例。一、前端部分(Vue)首先需要在前端建立一個用來上傳圖片的表單。具體程式碼如下:&lt;template&gt;&lt;div&gt;&lt;inputtype="fil

如何使用ThinkPHP6實作圖片上傳 如何使用ThinkPHP6實作圖片上傳 Jun 20, 2023 pm 09:25 PM

隨著互聯網的發展,圖片上傳已經成為了網站和應用程式開發中的一個必不可少的功能。而在PHP領域,ThinkPHP6已經成為了一個非常流行的開發框架。在本文中,我們將介紹如何使用ThinkPHP6實作圖片上傳。一、建立專案和控制器首先,我們需要建立一個新的ThinkPHP6專案。可以使用Composer進行安裝,也可以在官網下載最新版。安裝完成後,在控制台中進入

Vue技術開發中如何實現圖片上傳與裁剪 Vue技術開發中如何實現圖片上傳與裁剪 Oct 10, 2023 pm 12:46 PM

Vue技術開發中如何實現圖片上傳和裁剪,需要具體程式碼範例在現代Web開發中,圖片上傳和圖片裁剪是常見的需求之一。 Vue.js作為一個流行的前端框架,提供了豐富的工具和插件來幫助我們實現這些功能。本文將介紹如何在Vue技術開發中實現圖片上傳和裁剪,並提供具體的程式碼範例。圖片上傳的實作可以分為兩個步驟:選擇圖片和上傳圖片。在Vue中,可以使用第三方插件來簡化這個

如何使用PHP實現一個簡單的線上圖片上傳和展示系統 如何使用PHP實現一個簡單的線上圖片上傳和展示系統 Sep 25, 2023 am 09:21 AM

如何使用PHP實現一個簡單的線上圖片上傳和展示系統圖片上傳和展示系統是現代網站常用的功能之一,在開發過程中使用PHP可以快速實現這個功能。本篇文章將介紹如何使用PHP編寫一個簡單的線上圖片上傳和展示系統,並提供具體的程式碼範例。一、建立資料庫和表格首先,我們需要建立一個資料庫和表格來儲存上傳的圖片資訊。使用下列SQL語句建立一個名為"images"的表格,並設

Vue開發中如何解決圖片上傳預覽模態框顯示問題 Vue開發中如何解決圖片上傳預覽模態框顯示問題 Jul 01, 2023 pm 01:13 PM

Vue開發中如何解決圖片上傳預覽模態框顯示問題在Vue開發中,經常會遇到需要上傳圖片並預覽的需求。在這種情況下,一個常見的問題是如何在上傳圖片之後,在模態框中顯示預覽圖片。本文將介紹一種解決這個問題的方法。首先,我們需要在Vue的元件中加入一個檔案上傳的input元素,用於選擇要上傳的圖片檔案。透過監聽檔案上傳的change事件,我們可以取得到使用者選擇的圖片

See all articles