jquery的Uploadify控件上传图片和预览使用介绍。

在简单的servlet系统中和在SSH框架中,后台处理不同的,在三大框架中图片预览时费了不少力气,所以下面将两种情况都介绍一下。

1,前台代码

script:

  1. $("#uploadify").uploadify({
  2. 'langFile'       : '<%=request.getContextPath()%>/config/juploadify/uploadifyLang_cn.js',
  3. 'swf'            : '<%=request.getContextPath()%>/config/juploadify/uploadify.swf',
  4. 'uploader'       : '<%=request.getContextPath()%>/UploadAction/uploadImg.action', //图片上传的action方法
  5. 'queueID'        : 'fileQueue',
  6. 'auto'           : true,
  7. 'multi'          : true,
  8. 'buttonCursor'   : 'hand',
  9. 'fileObjName'    : 'uploadify',
  10. 'buttonText'     : '上传图片',
  11. 'height'         : '25',
  12. 'progressData'   : 'percentage',
  13. 'fileTypeDesc'   : '支持格式:jpg/gif/jpeg/png/bmp.',
  14. 'fileTypeExts': '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允许的格式
  15. onUploadSuccess  : function(file,data,response) {
  16. //设置图片预览
  17. var _arr_val = data.split(",");
  18. $("#photo").val(_arr_val[1]);
  19. $("#pic_view").attr("src","<%=request.getContextPath()%>" + _arr_val[1]);
  20. }
  21. });

html

  1. <td width="15%" rowspan="9" align="center">
  2. <div id="fileQueue" style="width:200px;"></div>
  3. <input type="file" name="uploadify" id="uploadify" />
  4. <input type="hidden" name="photo" id="photo" value="">
  5. <div id="pic_view_div" style="width:150px; height:180px">
  6. <img src="<%=request.getContextPath()%>/image/nopic.gif" width="150" height="180" id="pic_view">
  7. </div>
  8. </td>

2,servlet中后台处理

  1. public void uploadImg(){
  2. // 解决服务器端消息返回客户端后中文字符乱码
  3. response.setHeader("Content-Type", "text/html;charset=UTF-8");
  4. HttpSession session = request.getSession();
  5. PrintWriter outs = response.getWriter();
  6. //获取上传图片的路径
  7. String savePath = request.getSession().getServletContext().getRealPath("");
  8. String saveDirectory = savePath + "/Imgupload";
  9. File file = new File(saveDirectory);
  10. if (!file.exists()) {
  11. file.mkdirs();
  12. }
  13. //设置图片大小
  14. if (StringUtils.isBlank(this.fileSizeLimit.toString())) {
  15. this.fileSizeLimit = "100";// 默认100M
  16. }
  17. int maxPostSize = Integer.valueOf(this.fileSizeLimit).intValue() * 1024 * 1024;
  18. String encoding = "UTF-8";
  19. MultipartRequest multi = null;
  20. try {
  21. multi = new MultipartRequest(request, saveDirectory, maxPostSize, encoding);
  22. } catch (Exception e) {
  23. System.out.println("发生异常:" + e.getMessage());
  24. return;
  25. }
  26. //图片预览功能实现
  27. String _result = "";
  28. Enumeration files = multi.getFileNames();
  29. while (files.hasMoreElements()) {
  30. String name = (String) files.nextElement();
  31. File f = multi.getFile(name);
  32. if (f != null) {
  33. String fileName = multi.getFilesystemName(name);
  34. String lastFileName = saveDirectory + "/" + fileName;
  35. result += multi.getOriginalFileName(name) + "," + savePath + "/" + fileName;
  36. }
  37. }
  38. outs.print(_result);
  39. }

注意:action方法返回的字符串为图片的名称和图片的路径。

3,SSH框架中使用

  1. package cn.com.zzcy.base.action;
  2. import java.io.File;
  3. @Namespace("/UploadAction")
  4. public class UploadAction {
  5. private File uploadify;
  6. public File getUploadify() {
  7. return uploadify;
  8. }
  9. public void setUploadify(File uploadify) {
  10. this.uploadify = uploadify;
  11. }
  12. private String uploadifyFileName;
  13. public String getUploadifyFileName() {
  14. return uploadifyFileName;
  15. }
  16. public void setUploadifyFileName(String uploadifyFileName) {
  17. this.uploadifyFileName = uploadifyFileName;
  18. }
  19. /**
  20. * 上传图片
  21. * @throws IOException
  22. */
  23. @Action("uploadImg")
  24. public void uploadImg(){
  25. HttpServletRequest request = ServletActionContext.getRequest();
  26. HttpServletResponse response = ServletActionContext.getResponse();
  27. String savePath = request.getSession().getServletContext().getRealPath("");
  28. PrintWriter out = null;
  29. String resultStr = "";
  30. String extName = "";// 扩展名
  31. String newFileName = "";// 新文件名
  32. try {
  33. response.setCharacterEncoding("utf-8");
  34. out = response.getWriter();
  35. //获取文件的扩展名
  36. if (uploadifyFileName.lastIndexOf(".") >= 0) {
  37. extName = uploadifyFileName.substring(uploadifyFileName.lastIndexOf("."));
  38. }
  39. //根据当前时间生成新的文件名称
  40. String nowTime = new SimpleDateFormat("yyyymmddHHmmss").format(new Date());// 当前时间
  41. newFileName = nowTime + extName;
  42. //设置文件保存路径
  43. String param = request.getParameter("param");
  44. savePath = savePath + "/ImgUpload/"+param+"/";
  45. File file = new File(savePath);
  46. if(!file.exists()){
  47. file.mkdirs();
  48. }
  49. uploadify.renameTo(new File(savePath+newFileName));
  50. resultStr = uploadifyFileName+","+"/ImgUpload/"+param+"/"+newFileName;
  51. } catch (IOException e) {
  52. e.printStackTrace();
  53. }finally{
  54. out.print(resultStr);
  55. }
  56. }
  57. }

注意:要定义局部变量并提供set方法,这样图片的名称和信息才能自动注入进入。

这里通过request方法获取不到图片信息。。。

4,实现的效果图如下:

原文出自:http://blog.csdn.net/lishuangzhe7047/article/details/41803175

Uploadify 控件上传图片 + 预览的更多相关文章

  1. jquery实现上传图片预览(需要浏览器支持html5)

    jquery实现上传图片预览(需要浏览器支持html5) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  2. HTML5上传图片预览

    <!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http ...

  3. HTML5上传图片预览功能

    HTML5上传图片预览功能 HTML代码如下: <!-- date: 2018-04-27 14:41:35 author: 王召波 descride: HTML5上传图片预览功能 --> ...

  4. JS 上传图片 + 预览功能(一)

    JS 上传图片 + 预览功能 <body> <input type="file" id="fileimg1" style="disp ...

  5. js兼容火狐显示上传图片预览效果

    js兼容火狐显示上传图片预览效果[谷歌也适用] <!doctype html> <html> <head> <meta content="text/ ...

  6. 通过HTML5 FileReader实现上传图片预览功能

    原文:http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/201706224590.html 在上传图片到服务器之前,我们希望可以预览一下要上传的图片. ...

  7. 去除ckeditor上传图片预览中的英文字母

    去除ckeditor上传图片预览中的英文字母 CKEDITOR.replace('text', { filebrowserImageUploadUrl : 'upload_img.do', langu ...

  8. HTML5 上传图片预览

    html5出现之前如果需要上传图片预览 一般都是先上传到服务器然后远程预览 html5出现之后   有个filereader 解决了这问题 //选中图片之后 $("#fileAddPic&q ...

  9. [ASP.NET]使用uploadify上传图片,并在uploadify按钮上生成预览图

    目录 需求 主要代码 总结 需求 项目中有用到uploadify上传插件,给的原型就是上传成功后替换原来的图片.没办法需求在那儿,也不能修改需求吧,只能想办法解决问题了. 主要代码 修改uploadi ...

随机推荐

  1. 如何管好.net的内存(托管堆和垃圾回收)

    一:C#标准Dispose模式的实现 需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CL ...

  2. nodejs remote链接mysql数据库总结

    nodejs链接远端mysql,这个折腾了一个上午才搞定.本以为,直接使用就OK了,但是发现不行,后来查阅各种资料后,终于找到了方法. nodejs链接远端数据库主要分为几个步骤: 1)安装node- ...

  3. jQuery网页元素拖拽插件

    效果说明:配合已有CSS样式,载入插件后,网页元素可以随意在窗口内拖拽,设置了原位置半透明和拖拽半透明的效果选项,可根据需要选择.另外,当页面上有多个可拖拽元素时,可以载入另外一个用于设置z-inde ...

  4. 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转

    基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠 ...

  5. 008.ComputeReplacement

    Delphi function ComputeReplacement: UTF8String; 类型:function 可见性:public 所在单元:System.RegularExpression ...

  6. 百度地图api的实现

    获取客户端IP地址经纬度所在城市 <?php $getIp=$_SERVER["REMOTE_ADDR"]; echo 'IP:',$getIp; echo ''; $con ...

  7. LR中错误代号为27796的解决方法

    问题:   曾经遇到过一个问题,在一次性能测试过程中,使用http协议的多用户向服务器发送请求.设置了持续时间,出现错误为:27796, Failed to connect to server 'ho ...

  8. vsftpd本地用户登录密码错误

    今天发现自己虚拟机的vsftp使用本地用户名无法登陆,于是重新配置,但配置了很多次都没成功,一直显示 530 Login incorrect. Login failed 尝试了网上很多修改PAM的方案 ...

  9. WPF中Image的Stretch属性

    有时候我们在WPF程序中设置了图片的Width和Height,但图片显示出来的宽和高并不是我们预期的效果,这实际上是由于Image的默认Stretch属性导致的 Image的Stretch属性默认为U ...

  10. Thinkphp C方法

    C方法是ThinkPHP用于设置.获取,以及保存配置参数的方法,使用频率较高. 了解C方法需要首先了解下ThinkPHP的配置,因为C方法的所有操作都是围绕配置相关的.ThinkPHP的配置文件采用P ...