Table des matières
Symfony2使用第三方库Upload制作图片上传实例详解,
您可能感兴趣的文章:
Maison 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": "*"

Copier après la connexion

2.运行指令安装

composer update

Copier après la connexion

二、编码

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

Copier après la connexion

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

Copier après la connexion

这样图片就上传成功,将用户的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开发之控制器用法实例分析
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Étapes pour implémenter le téléchargement et l'affichage d'images à l'aide du framework CakePHP Étapes pour implémenter le téléchargement et l'affichage d'images à l'aide du framework CakePHP Jul 29, 2023 pm 04:21 PM

Étapes pour implémenter le téléchargement et l'affichage d'images à l'aide du framework CakePHP Introduction : Dans les applications Web modernes, le téléchargement et l'affichage d'images sont des exigences fonctionnelles courantes. Le framework CakePHP fournit aux développeurs des fonctions puissantes et des outils pratiques, rendant simple et efficace le téléchargement et l'affichage d'images. Cet article vous expliquera comment utiliser le framework CakePHP pour télécharger et afficher des images. Étape 1 : Créer un formulaire de téléchargement de fichier. Tout d'abord, nous devons créer un formulaire dans le fichier d'affichage pour que les utilisateurs puissent télécharger des images. Ce qui suit est un exemple de

L'applet WeChat implémente la fonction de téléchargement d'images L'applet WeChat implémente la fonction de téléchargement d'images Nov 21, 2023 am 09:08 AM

L'applet WeChat implémente la fonction de téléchargement d'images Avec le développement de l'Internet mobile, l'applet WeChat est devenue un élément indispensable dans la vie des gens. Les mini-programmes WeChat fournissent non seulement une multitude de scénarios d'application, mais prennent également en charge les fonctions définies par les développeurs, notamment les fonctions de téléchargement d'images. Cet article présentera comment implémenter la fonction de téléchargement d'images dans l'applet WeChat et fournira des exemples de code spécifiques. 1. Travaux préparatoires Avant de commencer à écrire du code, nous devons télécharger et installer les outils de développement WeChat et nous inscrire en tant que développeur WeChat. En même temps, vous devez également comprendre WeChat

Comment utiliser PHP et Vue pour implémenter la fonction de téléchargement d'images Comment utiliser PHP et Vue pour implémenter la fonction de téléchargement d'images Sep 25, 2023 pm 03:17 PM

Comment utiliser PHP et Vue pour implémenter la fonction de téléchargement d'images. Dans le développement Web moderne, la fonction de téléchargement d'images est une exigence très courante. Cet article présentera en détail comment utiliser PHP et Vue pour implémenter la fonction de téléchargement d'images et fournira des exemples de code spécifiques. 1. Partie front-end (Vue) Tout d'abord, vous devez créer un formulaire pour télécharger des images sur le front-end. Le code spécifique est le suivant :&lt;template&gt;&lt;div&gt;&lt;inputtype="fil

Comment gérer le téléchargement et la compression d'images dans le développement de la technologie Vue Comment gérer le téléchargement et la compression d'images dans le développement de la technologie Vue Oct 08, 2023 am 10:58 AM

Comment gérer le téléchargement et la compression d'images dans le développement de la technologie Vue Dans les applications Web modernes, le téléchargement d'images est une exigence très courante. Cependant, pour des raisons de transmission réseau et de stockage, le téléchargement direct d'images originales haute résolution peut entraîner des vitesses de téléchargement lentes et un gaspillage important d'espace de stockage. Par conséquent, le téléchargement et la compression des images sont très importants. Dans le développement de la technologie Vue, nous pouvons utiliser des solutions prêtes à l'emploi pour gérer le téléchargement et la compression des images. Ce qui suit présentera comment utiliser vue-upload-comone

Problèmes de téléchargement et de recadrage d'images rencontrés dans le développement de Vue Problèmes de téléchargement et de recadrage d'images rencontrés dans le développement de Vue Oct 08, 2023 pm 04:12 PM

Titre : Problèmes et solutions de téléchargement et de recadrage d'images dans le développement de Vue Introduction : Dans le développement de Vue, le téléchargement et le recadrage d'images sont des exigences courantes. Cet article présentera les problèmes de téléchargement et de recadrage d'images rencontrés dans le développement de Vue, et donnera des solutions et des exemples de code spécifiques. 1. Problème de téléchargement d'image : la sélection du bouton de téléchargement d'image ne peut pas déclencher la boîte de sélection de fichier : ce problème est généralement dû au fait que l'événement n'est pas lié correctement ou que l'événement lié ne prend pas effet. Vous pouvez lier l'événement click dans le modèle et déclencher la zone de sélection de fichier dans la méthode correspondante. Exemple de code :

Comment utiliser ThinkPHP6 pour télécharger des images Comment utiliser ThinkPHP6 pour télécharger des images Jun 20, 2023 pm 09:25 PM

Avec le développement d’Internet, le téléchargement d’images est devenu une fonctionnalité essentielle dans le développement de sites Web et d’applications. Dans le domaine de PHP, ThinkPHP6 est devenu un framework de développement très populaire. Dans cet article, nous présenterons comment utiliser ThinkPHP6 pour implémenter le téléchargement d'images. 1. Créer un projet et un contrôleur Tout d'abord, nous devons créer un nouveau projet ThinkPHP6. Vous pouvez utiliser Composer pour l'installer ou télécharger la dernière version sur le site officiel. Une fois l'installation terminée, entrez dans la console

Comment implémenter le téléchargement et le recadrage d'images dans le développement de la technologie Vue Comment implémenter le téléchargement et le recadrage d'images dans le développement de la technologie Vue Oct 10, 2023 pm 12:46 PM

Comment implémenter le téléchargement et le recadrage d'images dans le développement de la technologie Vue nécessite des exemples de code spécifiques dans le développement Web moderne, le téléchargement et le recadrage d'images sont l'une des exigences courantes. En tant que framework frontal populaire, Vue.js fournit une multitude d'outils et de plug-ins pour nous aider à réaliser ces fonctions. Cet article présentera comment implémenter le téléchargement et le recadrage d'images dans le développement de la technologie Vue, et fournira des exemples de code spécifiques. La mise en œuvre du téléchargement d'images peut être divisée en deux étapes : la sélection des images et le téléchargement des images. Dans Vue, vous pouvez utiliser des plugins tiers pour simplifier cela

Comment résoudre le problème d'affichage de la boîte modale d'aperçu du téléchargement d'image dans le développement Vue Comment résoudre le problème d'affichage de la boîte modale d'aperçu du téléchargement d'image dans le développement Vue Jul 01, 2023 pm 01:13 PM

Comment résoudre le problème de l'affichage de la boîte modale d'aperçu du téléchargement d'images dans le développement Vue, nous rencontrons souvent le besoin de télécharger des images et de les prévisualiser. Dans ce cas, une question courante est de savoir comment afficher l'image d'aperçu dans la boîte modale après le téléchargement de l'image. Cet article présentera un moyen de résoudre ce problème. Tout d’abord, nous devons ajouter un élément d’entrée de téléchargement de fichier au composant Vue pour sélectionner le fichier image à télécharger. En écoutant l'événement de changement du téléchargement du fichier, nous pouvons obtenir l'image sélectionnée par l'utilisateur

See all articles