Uploadify 控件上传图片 + 预览
jquery的Uploadify控件上传图片和预览使用介绍。
在简单的servlet系统中和在SSH框架中,后台处理不同的,在三大框架中图片预览时费了不少力气,所以下面将两种情况都介绍一下。
1,前台代码
script:
- $("#uploadify").uploadify({
- 'langFile' : '<%=request.getContextPath()%>/config/juploadify/uploadifyLang_cn.js',
- 'swf' : '<%=request.getContextPath()%>/config/juploadify/uploadify.swf',
- 'uploader' : '<%=request.getContextPath()%>/UploadAction/uploadImg.action', //图片上传的action方法
- 'queueID' : 'fileQueue',
- 'auto' : true,
- 'multi' : true,
- 'buttonCursor' : 'hand',
- 'fileObjName' : 'uploadify',
- 'buttonText' : '上传图片',
- 'height' : '25',
- 'progressData' : 'percentage',
- 'fileTypeDesc' : '支持格式:jpg/gif/jpeg/png/bmp.',
- 'fileTypeExts': '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允许的格式
- onUploadSuccess : function(file,data,response) {
- //设置图片预览
- var _arr_val = data.split(",");
- $("#photo").val(_arr_val[1]);
- $("#pic_view").attr("src","<%=request.getContextPath()%>" + _arr_val[1]);
- }
- });
html
- <td width="15%" rowspan="9" align="center">
- <div id="fileQueue" style="width:200px;"></div>
- <input type="file" name="uploadify" id="uploadify" />
- <input type="hidden" name="photo" id="photo" value="">
- <div id="pic_view_div" style="width:150px; height:180px">
- <img src="<%=request.getContextPath()%>/image/nopic.gif" width="150" height="180" id="pic_view">
- </div>
- </td>
2,servlet中后台处理
- public void uploadImg(){
- // 解决服务器端消息返回客户端后中文字符乱码
- response.setHeader("Content-Type", "text/html;charset=UTF-8");
- HttpSession session = request.getSession();
- PrintWriter outs = response.getWriter();
- //获取上传图片的路径
- String savePath = request.getSession().getServletContext().getRealPath("");
- String saveDirectory = savePath + "/Imgupload";
- File file = new File(saveDirectory);
- if (!file.exists()) {
- file.mkdirs();
- }
- //设置图片大小
- if (StringUtils.isBlank(this.fileSizeLimit.toString())) {
- this.fileSizeLimit = "100";// 默认100M
- }
- int maxPostSize = Integer.valueOf(this.fileSizeLimit).intValue() * 1024 * 1024;
- String encoding = "UTF-8";
- MultipartRequest multi = null;
- try {
- multi = new MultipartRequest(request, saveDirectory, maxPostSize, encoding);
- } catch (Exception e) {
- System.out.println("发生异常:" + e.getMessage());
- return;
- }
- //图片预览功能实现
- String _result = "";
- Enumeration files = multi.getFileNames();
- while (files.hasMoreElements()) {
- String name = (String) files.nextElement();
- File f = multi.getFile(name);
- if (f != null) {
- String fileName = multi.getFilesystemName(name);
- String lastFileName = saveDirectory + "/" + fileName;
- result += multi.getOriginalFileName(name) + "," + savePath + "/" + fileName;
- }
- }
- outs.print(_result);
- }
注意:action方法返回的字符串为图片的名称和图片的路径。
3,SSH框架中使用
- package cn.com.zzcy.base.action;
- import java.io.File;
- @Namespace("/UploadAction")
- public class UploadAction {
- private File uploadify;
- public File getUploadify() {
- return uploadify;
- }
- public void setUploadify(File uploadify) {
- this.uploadify = uploadify;
- }
- private String uploadifyFileName;
- public String getUploadifyFileName() {
- return uploadifyFileName;
- }
- public void setUploadifyFileName(String uploadifyFileName) {
- this.uploadifyFileName = uploadifyFileName;
- }
- /**
- * 上传图片
- * @throws IOException
- */
- @Action("uploadImg")
- public void uploadImg(){
- HttpServletRequest request = ServletActionContext.getRequest();
- HttpServletResponse response = ServletActionContext.getResponse();
- String savePath = request.getSession().getServletContext().getRealPath("");
- PrintWriter out = null;
- String resultStr = "";
- String extName = "";// 扩展名
- String newFileName = "";// 新文件名
- try {
- response.setCharacterEncoding("utf-8");
- out = response.getWriter();
- //获取文件的扩展名
- if (uploadifyFileName.lastIndexOf(".") >= 0) {
- extName = uploadifyFileName.substring(uploadifyFileName.lastIndexOf("."));
- }
- //根据当前时间生成新的文件名称
- String nowTime = new SimpleDateFormat("yyyymmddHHmmss").format(new Date());// 当前时间
- newFileName = nowTime + extName;
- //设置文件保存路径
- String param = request.getParameter("param");
- savePath = savePath + "/ImgUpload/"+param+"/";
- File file = new File(savePath);
- if(!file.exists()){
- file.mkdirs();
- }
- uploadify.renameTo(new File(savePath+newFileName));
- resultStr = uploadifyFileName+","+"/ImgUpload/"+param+"/"+newFileName;
- } catch (IOException e) {
- e.printStackTrace();
- }finally{
- out.print(resultStr);
- }
- }
- }
注意:要定义局部变量并提供set方法,这样图片的名称和信息才能自动注入进入。
这里通过request方法获取不到图片信息。。。
4,实现的效果图如下:
原文出自:http://blog.csdn.net/lishuangzhe7047/article/details/41803175
Uploadify 控件上传图片 + 预览的更多相关文章
- jquery实现上传图片预览(需要浏览器支持html5)
jquery实现上传图片预览(需要浏览器支持html5) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- HTML5上传图片预览
<!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...
- HTML5上传图片预览功能
HTML5上传图片预览功能 HTML代码如下: <!-- date: 2018-04-27 14:41:35 author: 王召波 descride: HTML5上传图片预览功能 --> ...
- JS 上传图片 + 预览功能(一)
JS 上传图片 + 预览功能 <body> <input type="file" id="fileimg1" style="disp ...
- js兼容火狐显示上传图片预览效果
js兼容火狐显示上传图片预览效果[谷歌也适用] <!doctype html> <html> <head> <meta content="text/ ...
- 通过HTML5 FileReader实现上传图片预览功能
原文:http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/201706224590.html 在上传图片到服务器之前,我们希望可以预览一下要上传的图片. ...
- 去除ckeditor上传图片预览中的英文字母
去除ckeditor上传图片预览中的英文字母 CKEDITOR.replace('text', { filebrowserImageUploadUrl : 'upload_img.do', langu ...
- HTML5 上传图片预览
html5出现之前如果需要上传图片预览 一般都是先上传到服务器然后远程预览 html5出现之后 有个filereader 解决了这问题 //选中图片之后 $("#fileAddPic&q ...
- [ASP.NET]使用uploadify上传图片,并在uploadify按钮上生成预览图
目录 需求 主要代码 总结 需求 项目中有用到uploadify上传插件,给的原型就是上传成功后替换原来的图片.没办法需求在那儿,也不能修改需求吧,只能想办法解决问题了. 主要代码 修改uploadi ...
随机推荐
- 实现android支持多线程断点续传下载器功能
多线程断点下载流程图: 多线程断点续传下载原理介绍: 在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度手机端下载数据时难免会出现无信号断线.电量不足等情况,所以需要断点续传功能根据下 ...
- 一.Nginx的特性和一些知识点
一.Nginx的特性和一些知识点 1.基本功能服务器 处理静态文件(静态资源的web),支持 反向代理服务器,支持缓存.负载均衡.支持FastCGI 模块化机制,非DOS机制,支持 ...
- [CSS]三角形
CSS盒子模型 当我们把padding和width,height全部设置为0,border设为一个较大的像素时 即:我们需要什么方向的三角形,只需把其余的三角形背景色设置为transparent:
- C#对象转JSON字符串和JSON字符串转对象
namespace Net.String.ConsoleApplication { using System; using System.Data; using System.Collections; ...
- MYSQL数据库主主同步实战
MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...
- Discuz 哪些文件和文件夹需要777权限
Discuz有强大的缓存能力,当然要想建立这些缓存,就需要对需要的文件和文件夹进行读写,因此给需要的文件和文件夹777权限(Linux服务器)是必不可少的,下面就列出了需要给777权限的文件和文件夹, ...
- 超棒的阿里巴巴矢量图标库——支持IE6
Iconfont.cn 是由阿里巴巴UX部门推出的矢量图标管理网站,也是国内首家推广Webfont形式图标的平台.网站涵盖了1000多个常用图标并还在持续更新 中,Iconfont平台为用户提供在线图 ...
- scala知识点(二)
Scala允许使用三个引号来进行多行字符引用:(引自) val longString = """Line 1 Line Line """; ...
- Linux学习系列之Linux入门(二)Vim学习
第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...
- MySQL行级锁,表级锁,页级锁详解
页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...