Symfony 2 제3자 라 이브 러 리 Upload 를 사용 하여 사진 업로드 실례 상세 설명
저 희 는 응용 프로그램 이나 사이트 의 개인 정보 에 프로필 사진 을 설정 하 는 기능 이 있 습 니 다.이 장 에서 저 희 는 Symfony 2 에서 제3자 의 비교적 유명한 Upload 라 이브 러 리 로 사진 을 올 리 는 기능 을 만 듭 니 다.
1.제3자 라 이브 러 리 설치
1.composer.json 파일 의"require"에 추가
"codeguy/upload": "*"
2.실행 명령 설치
composer update
부호화1.uploadPic 방법 을 작성 하여 그림 을 업로드 하고,업로드 한 사용자 id 를 파일 이름 으로 합 니 다
<?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.사용자 가 프로필 사진 을 업로드 하고 프로필 사진 의 전체 경 로 를 데이터베이스 시트 에 저장 합 니 다.
<?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 = ? 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 = ? 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
본 고 는 IT 985 블 로그 에서 나 온 것 으로 전재 할 때 출처 와 해당 하 는 링크 를 밝 혀 주 십시오.
더 많은 PHP 프레임 워 크 와 관련 된 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,등 을 볼 수 있 습 니 다.
본 고 는 Symforny 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 ECCUBEPHP, Symfony2를 배운 후 ECCUBE를 처음 접하게 됐는데, 공부하는 김에 읽은 기사와 마음에 드는 것들을 정리해 봤다. 일본 기업의 주식회사 록콘이 제공하는 EC 웹사이트 구축 패키지의 명칭.일본에서 왔...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.