Inhaltsverzeichnis
Symfony2使用第三方库Upload制作图片上传实例详解,
您可能感兴趣的文章:
Heim Backend-Entwicklung PHP-Tutorial Symfony2使用第三方库Upload制作图片上传实例详解,_PHP教程

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

Jul 12, 2016 am 08:59 AM
图片上传

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

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

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

一、安装第三方库

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

"codeguy/upload": "*"

Nach dem Login kopieren

2.运行指令安装

composer update

Nach dem Login kopieren

二、编码

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;
  }
}

Nach dem Login kopieren

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'));
  }
}

Nach dem Login kopieren

这样图片就上传成功,将用户的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开发之控制器用法实例分析

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1098963.htmlTechArticleSymfony2使用第三方库Upload制作图片上传实例详解, 本文实例分析了Symfony2使用第三方库Upload制作图片上传的方法。分享给大家供大家参考,...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Das WeChat-Applet implementiert die Funktion zum Hochladen von Bildern Das WeChat-Applet implementiert die Funktion zum Hochladen von Bildern Nov 21, 2023 am 09:08 AM

WeChat-Applet implementiert Bild-Upload-Funktion Mit der Entwicklung des mobilen Internets ist das WeChat-Applet zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. WeChat-Miniprogramme bieten nicht nur eine Fülle von Anwendungsszenarien, sondern unterstützen auch vom Entwickler definierte Funktionen, einschließlich Funktionen zum Hochladen von Bildern. In diesem Artikel wird erläutert, wie die Bild-Upload-Funktion im WeChat-Applet implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Vorbereitende Arbeiten Bevor wir mit dem Schreiben von Code beginnen, müssen wir die WeChat-Entwicklertools herunterladen und installieren und uns als WeChat-Entwickler registrieren. Gleichzeitig müssen Sie auch WeChat verstehen

Schritte zum Implementieren des Hochladens und Anzeigens von Bildern mithilfe des CakePHP-Frameworks Schritte zum Implementieren des Hochladens und Anzeigens von Bildern mithilfe des CakePHP-Frameworks Jul 29, 2023 pm 04:21 PM

Schritte zum Implementieren des Hochladens und Anzeigens von Bildern mithilfe des CakePHP-Frameworks Einführung: In modernen Webanwendungen sind das Hochladen und Anzeigen von Bildern häufige Funktionsanforderungen. Das CakePHP-Framework stellt Entwicklern leistungsstarke Funktionen und praktische Tools zur Verfügung, die das Hochladen und Anzeigen von Bildern einfach und effizient machen. In diesem Artikel erfahren Sie, wie Sie das CakePHP-Framework zum Hochladen und Anzeigen von Bildern verwenden. Schritt 1: Erstellen Sie ein Datei-Upload-Formular. Zuerst müssen wir in der Ansichtsdatei ein Formular erstellen, damit Benutzer Bilder hochladen können. Das Folgende ist ein Beispiel dafür

Umgang mit dem Hochladen und Komprimieren von Bildern bei der Entwicklung der Vue-Technologie Umgang mit dem Hochladen und Komprimieren von Bildern bei der Entwicklung der Vue-Technologie Oct 08, 2023 am 10:58 AM

Umgang mit dem Hochladen und Komprimieren von Bildern bei der Entwicklung der Vue-Technologie In modernen Webanwendungen ist das Hochladen von Bildern eine sehr häufige Anforderung. Aus Gründen der Netzwerkübertragung und -speicherung kann das direkte Hochladen von Originalbildern mit hoher Auflösung jedoch zu langsamen Upload-Geschwindigkeiten und einer großen Verschwendung von Speicherplatz führen. Daher ist das Hochladen und Komprimieren von Bildern sehr wichtig. Bei der Entwicklung der Vue-Technologie können wir einige vorgefertigte Lösungen für das Hochladen und Komprimieren von Bildern verwenden. Im Folgenden wird die Verwendung von vue-upload-comone vorgestellt

So verwenden Sie PHP und Vue, um die Funktion zum Hochladen von Bildern zu implementieren So verwenden Sie PHP und Vue, um die Funktion zum Hochladen von Bildern zu implementieren Sep 25, 2023 pm 03:17 PM

Verwendung von PHP und Vue zur Implementierung der Bild-Upload-Funktion In der modernen Webentwicklung ist die Bild-Upload-Funktion eine sehr häufige Anforderung. In diesem Artikel wird detailliert beschrieben, wie PHP und Vue zum Implementieren der Bild-Upload-Funktion verwendet werden, und es werden spezifische Codebeispiele bereitgestellt. 1. Frontend-Teil (Vue) Zuerst müssen Sie ein Formular zum Hochladen von Bildern im Frontend erstellen. Der spezifische Code lautet wie folgt:&lt;template&gt;&lt;div&gt;&lt;inputtype="fil

So verwenden Sie ThinkPHP6 zum Hochladen von Bildern So verwenden Sie ThinkPHP6 zum Hochladen von Bildern Jun 20, 2023 pm 09:25 PM

Mit der Entwicklung des Internets ist das Hochladen von Bildern zu einem wesentlichen Merkmal bei der Entwicklung von Websites und Anwendungen geworden. Im Bereich PHP hat sich ThinkPHP6 zu einem sehr beliebten Entwicklungsframework entwickelt. In diesem Artikel stellen wir vor, wie Sie ThinkPHP6 zum Implementieren des Bild-Uploads verwenden. 1. Projekt und Controller erstellen Zuerst müssen wir ein neues ThinkPHP6-Projekt erstellen. Sie können es mit Composer installieren oder die neueste Version von der offiziellen Website herunterladen. Geben Sie nach Abschluss der Installation in die Konsole ein

So implementieren Sie das Hochladen und Zuschneiden von Bildern in der Vue-Technologieentwicklung So implementieren Sie das Hochladen und Zuschneiden von Bildern in der Vue-Technologieentwicklung Oct 10, 2023 pm 12:46 PM

Für die Implementierung des Hochladens und Zuschneidens von Bildern in der Vue-Technologieentwicklung sind bestimmte Codebeispiele erforderlich. In der modernen Webentwicklung sind das Hochladen und Zuschneiden von Bildern eine der häufigsten Anforderungen. Als beliebtes Front-End-Framework bietet Vue.js eine Fülle von Tools und Plug-Ins, die uns bei der Umsetzung dieser Funktionen unterstützen. In diesem Artikel wird erläutert, wie das Hochladen und Zuschneiden von Bildern in der Vue-Technologieentwicklung implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Die Durchführung des Bild-Uploads kann in zwei Schritte unterteilt werden: Bilder auswählen und Bilder hochladen. In Vue können Sie Plugins von Drittanbietern verwenden, um dies zu vereinfachen

Wie man mit PHP ein einfaches Online-System zum Hochladen und Anzeigen von Bildern implementiert Wie man mit PHP ein einfaches Online-System zum Hochladen und Anzeigen von Bildern implementiert Sep 25, 2023 am 09:21 AM

So implementieren Sie mit PHP ein einfaches Online-Bild-Upload- und Anzeigesystem. Das Hochladen und Anzeigen von Bildern ist eine der häufig verwendeten Funktionen moderner Websites. Diese Funktion kann während des Entwicklungsprozesses schnell implementiert werden. In diesem Artikel wird erläutert, wie Sie mit PHP ein einfaches Online-System zum Hochladen und Anzeigen von Bildern schreiben, und es werden spezifische Codebeispiele bereitgestellt. 1. Datenbank und Tabellen erstellen Zuerst müssen wir eine Datenbank und Tabellen erstellen, um hochgeladene Bildinformationen zu speichern. Verwenden Sie die folgende SQL-Anweisung, um eine Tabelle mit dem Namen „images“ zu erstellen und festzulegen

Beim Hochladen und Zuschneiden von Bildern sind bei Verwendung der Vue-Entwicklung Probleme aufgetreten Beim Hochladen und Zuschneiden von Bildern sind bei Verwendung der Vue-Entwicklung Probleme aufgetreten Oct 08, 2023 pm 04:12 PM

Titel: Probleme und Lösungen beim Hochladen und Zuschneiden von Bildern in der Vue-Entwicklung. Einführung: Bei der Vue-Entwicklung sind das Hochladen und Zuschneiden von Bildern häufige Anforderungen. In diesem Artikel werden die bei der Vue-Entwicklung auftretenden Probleme beim Hochladen und Zuschneiden von Bildern vorgestellt und Lösungen sowie spezifische Codebeispiele bereitgestellt. 1. Problem beim Hochladen von Bildern: Durch Auswahl der Schaltfläche zum Hochladen von Bildern kann das Dateiauswahlfeld nicht ausgelöst werden: Dieses Problem liegt normalerweise daran, dass das Ereignis nicht korrekt gebunden ist oder das gebundene Ereignis nicht wirksam wird. Sie können das Klickereignis in der Vorlage binden und die Dateiauswahlbox in der entsprechenden Methode auslösen. Codebeispiel:

See all articles