백엔드 개발 PHP 튜토리얼 Symfony2使用第三方库Upload制作图片上传实例详解_php实例

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

Jun 07, 2016 pm 05:09 PM
이미지 업로드 타사 라이브러리

本文实例分析了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程序设计有所帮助。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WeChat 애플릿은 사진 업로드 기능을 구현합니다. WeChat 애플릿은 사진 업로드 기능을 구현합니다. Nov 21, 2023 am 09:08 AM

WeChat 애플릿은 사진 업로드 기능을 구현합니다. 모바일 인터넷의 발전으로 WeChat 애플릿은 사람들의 삶에 없어서는 안될 부분이 되었습니다. WeChat 미니 프로그램은 다양한 애플리케이션 시나리오를 제공할 뿐만 아니라 이미지 업로드 기능을 포함한 개발자 정의 기능도 지원합니다. 이 기사에서는 WeChat 애플릿에서 이미지 업로드 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 준비 작업 코드 작성을 시작하기 전에 WeChat 개발자 도구를 다운로드하여 설치하고 WeChat 개발자로 등록해야 합니다. 동시에 WeChat도 이해해야 합니다.

CakePHP 프레임워크를 사용하여 이미지 업로드 및 표시를 구현하는 단계 CakePHP 프레임워크를 사용하여 이미지 업로드 및 표시를 구현하는 단계 Jul 29, 2023 pm 04:21 PM

CakePHP 프레임워크를 사용하여 이미지 업로드 및 표시를 구현하는 단계 소개: 최신 웹 애플리케이션에서 이미지 업로드 및 표시는 일반적인 기능 요구 사항입니다. CakePHP 프레임워크는 개발자에게 강력한 기능과 편리한 도구를 제공하여 이미지를 쉽고 효율적으로 업로드하고 표시할 수 있도록 해줍니다. 이 글에서는 CakePHP 프레임워크를 사용하여 이미지를 업로드하고 표시하는 방법을 소개합니다. 1단계: 파일 업로드 양식 만들기 먼저 사용자가 이미지를 업로드할 수 있는 보기 파일에 양식을 만들어야 합니다. 다음은 그 예입니다.

Go에서 타사 라이브러리를 어떻게 사용하나요? Go에서 타사 라이브러리를 어떻게 사용하나요? May 11, 2023 pm 03:30 PM

Go 언어에서는 타사 라이브러리를 사용하는 것이 매우 편리합니다. 많은 우수한 타사 라이브러리와 프레임워크는 애플리케이션을 빠르게 개발하는 데 도움이 되는 동시에 코드 작성 작업량을 줄이는 데도 도움이 됩니다. 그러나 안정성과 신뢰성을 보장하기 위해 타사 라이브러리를 올바르게 사용하는 방법은 우리가 이해해야 할 문제입니다. 이 기사에서는 다음 측면에서 타사 라이브러리를 사용하는 방법을 소개하고 구체적인 예를 들어 설명합니다. 1. 타사 라이브러리 얻기 Go 언어로 타사 라이브러리를 얻는 방법에는 두 가지가 있습니다. 1. 먼저 goget 명령을 사용합니다.

Vue 기술 개발에서 이미지 업로드 및 압축을 처리하는 방법 Vue 기술 개발에서 이미지 업로드 및 압축을 처리하는 방법 Oct 08, 2023 am 10:58 AM

Vue 기술 개발에서 이미지 업로드 및 압축을 처리하는 방법 최신 웹 애플리케이션에서 이미지 업로드는 매우 일반적인 요구 사항입니다. 그러나 네트워크 전송 및 저장상의 이유로 고해상도 원본 이미지를 직접 업로드할 경우 업로드 속도가 느려지고 저장 공간이 크게 낭비될 수 있습니다. 따라서 이미지를 업로드하고 압축하는 것은 매우 중요합니다. Vue 기술 개발에서는 기성 솔루션을 사용하여 이미지 업로드 및 압축을 처리할 수 있습니다. 다음은 vue-upload-comone 사용법을 소개합니다.

PHP와 Vue를 사용하여 이미지 업로드 기능을 구현하는 방법 PHP와 Vue를 사용하여 이미지 업로드 기능을 구현하는 방법 Sep 25, 2023 pm 03:17 PM

PHP와 Vue를 사용하여 이미지 업로드 기능을 구현하는 방법 현대 웹 개발에서 이미지 업로드 기능은 매우 일반적인 요구 사항입니다. 이 글에서는 PHP와 Vue를 사용하여 이미지 업로드 기능을 구현하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 1. 프론트엔드 부분(Vue) 먼저 프론트엔드에 이미지를 업로드하기 위한 폼을 생성해야 합니다. 구체적인 코드는 다음과 같습니다:&lt;template&gt;&lt;div&gt;&lt;inputtype="fil

Go 언어로 타사 라이브러리를 설치하고 사용하는 방법은 무엇입니까? Go 언어로 타사 라이브러리를 설치하고 사용하는 방법은 무엇입니까? Jun 10, 2023 am 08:15 AM

Go 언어로 타사 라이브러리를 설치하고 사용하는 방법은 무엇입니까? Go 언어는 매우 유용한 기능과 이점이 많기 때문에 가장 인기 있는 현대 프로그래밍 언어 중 하나가 되었습니다. 다양한 프로그램을 작성하는 데 사용할 수 있는 매우 배우기 쉬운 언어입니다. 다른 많은 프로그래밍 언어와 마찬가지로 Go에는 코드를 보다 효율적으로 작성하고 많은 기능과 모듈식 구성 요소 구조를 제공하는 데 도움이 되는 수많은 타사 라이브러리도 있습니다. 이 기사에서는 Go의 타사 라이브러리를 사용하는 방법을 소개합니다. 제3자 찾기 및 선택

pip를 사용하여 쉽게 타사 라이브러리 설치: 따라하기 쉬운 가이드 pip를 사용하여 쉽게 타사 라이브러리 설치: 따라하기 쉬운 가이드 Jan 27, 2024 am 09:07 AM

간단하고 이해하기 쉬운 튜토리얼: pip를 사용하여 타사 라이브러리를 설치하는 방법, 특정 코드 예제가 필요합니다. 소개: Python 개발에서는 다양한 기능을 구현하기 위해 타사 라이브러리를 사용해야 하는 경우가 많습니다. Pip은 Python의 패키지 관리 도구로, 타사 라이브러리를 빠르고 쉽게 설치하고 관리하는 데 도움이 됩니다. 이 기사에서는 pip를 사용하여 타사 라이브러리를 설치하는 방법을 소개하고 특정 코드 예제를 제공합니다. 1단계: Python 및 pip 설치 확인 시작하기 전에 Python 설치를 확인해야 합니다.

Vue 개발 중 발생하는 이미지 업로드 및 자르기 문제 Vue 개발 중 발생하는 이미지 업로드 및 자르기 문제 Oct 08, 2023 pm 04:12 PM

제목: Vue 개발의 이미지 업로드 및 자르기 문제와 솔루션 소개: Vue 개발에서 이미지 업로드 및 자르기는 일반적인 요구 사항입니다. 이 기사에서는 Vue 개발에서 발생하는 이미지 업로드 및 자르기 문제를 소개하고 솔루션과 구체적인 코드 예제를 제공합니다. 1. 이미지 업로드 문제: 이미지 업로드 버튼을 선택해도 파일 선택 상자가 실행되지 않습니다. 이 문제는 일반적으로 이벤트가 올바르게 바인딩되지 않았거나 바인딩된 이벤트가 적용되지 않기 때문에 발생합니다. 템플릿에서 클릭 이벤트를 바인딩하고 해당 메서드에서 파일 선택 상자를 트리거할 수 있습니다. 코드 예:

See all articles