本文通过一个实例分析了Symfony2使用第三方库Upload上传图片的方法。分享给大家参考,如下:
一般我们有在应用或网站的个人资料中设置头像的功能。在这一章中,我们使用了一个知名的第三方上传库来实现Symfony2中的图片上传功能。
首先,安装第三方库。
1.在composer.json文件中添加“require”。
codeguy/upload ' : ' *
2.运行安装说明。
作曲家更新2。编码。
1.编写uploadPic方法上传图片,并使用上传图片的用户id作为文件名。
?允许转载blogs.zmit.cnhttp://blogs.zmit.cn *的PHP/* * * @ authorsun *原创作品。转载时请以超链接形式注明文章原文出处、http://blogs.zmit.cn/6544.html *蒙中博客、作者信息及本声明。否则,将追究法律责任。*/命名空间ZM 管理包控制器;使用Symfony Bundle framework Bundle Controller Controller;使用符号组件文件系统文件系统;类DefaultController扩展Controller { public function indexAction($ name){ return $ this-render(' zmadminbundlee : default : index . html . twig ',array(' name '=$ name));}/* * *上传图片* * @param键入$user_id用户的id。保存文件名的路径* @param type $path用作文件名中文件类型的输入* @ param type $str form * @ return type */public function uploadpic($ user _ id,$ str,$ path){ $ fs=new file system();//检查路径是否有if(!$fs-exists($path)) {//如果不存在,创建一个$fs-mkdir($path,0700)的目录;}//使用Upload library $ storage=new Upload storage file system($ path);$file=new UploadFile($str,$ storage);//如果文件名为空如果($file-getName()!=' '){//将文件名设置为用户的id $ file-setName($ user _ id);//验证文件上传$ file-addverifications(数组(//指定文件类型new Upload Validation Size(' 2M mime type(数组(' image/png ',' image/jpg ',' image/JPEG ',' image/gif ')))),//指定文件大小new Upload。//上传文件尝试{//成功$ file-Upload();//文件名和扩展名$ File _ name=$ File-getnamewithextension();} catch (Exception $e) {//失败!$ errors=$ file-GetErrors();} }//返回文件名和扩展名返回$ file _ name}}2.用户上传化身并将化身的完整路径存储在数据库表中。
?php/** *联系人控制器* @作者孙*作者*原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处http://blogs.zmit.cn/6544.html *中梦博客,作者信息和本声明。否则将追究法律责任*/命名空间ZM控制器;//引用写好的上传图片方法上传图片的控制器,并命名为基本控制器将ZM管理包控制器默认控制器作为基本控制器;使用符号组件 HttpFoundation 请求;使用符号组件 HttpFoundation 响应;//继承基本控制器类接触控制器扩展了BaseController { /** *用户上传头像* * @ return Response */public function uploadhead action(){ $ request=request :3360 create from globals()-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=?极限1 ',数组($ user _ id));//判断用户是否存在if(!空($ data[' id ']){//设置图片保存路径$ path=' image/head/';//获取上传文件后返回的文件名和扩展名$ file _ name=$ this-uploadPic($ user _ id,' head ',$ path);//修改用户接触表头头像字段的值$conn-executeUpdate('UPDATE)联系人“SET head=?”WHERE id=?数组($path).$file_name,$ user _ id));$ result[' flag ']=1;$result['content']='上传头像成功!} else { $ result[' flag ']=3;$result['content']='用户不存在!} } else { $ result[' flag ']=2;$result['content']='上传失败,没有选择图片!}返回新的响应(json_encode($result),' 200 ',数组(“内容类型”=“应用程序/JSON”);}}这样图片就上传成功,将用户的编号作为文件名,并修改表字段值为图片的全路径
本文永久地址:http://blog.it985.com/6544.html本文出自IT985博客,转载时请注明出处及相应链接。
更多关于服务器端编程语言(专业超文本预处理器的缩写)框架相关内容感兴趣的读者可查看本站专题: 《php优秀开发框架总结》 , 《codeigniter入门教程》 , 《CI(CodeIgniter)框架进阶教程》 , 《Yii框架入门及常用技巧总结》 及《ThinkPHP入门教程》
希望本文所述对大家基于Symfony框架的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。