`
king_tt
  • 浏览: 2221963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Extjs 表单 显示图片 + 上传

 
阅读更多
弄了一天的图片上传(也就是在表单里面显示图片,预览图片),显示,通过网上找资料终于弄好了。现在整理一下,贴到这,下次要再用到也方便查询了。。。

Java代码收藏代码
  1. //uploadFile.js
  2. Ext.onReady(function(){
  3. varfileForm=newExt.form.FormPanel({
  4. title:"",
  5. renderTo:"fileUpload",
  6. fileUpload:true,
  7. layout:"form",
  8. id:"fileUploadForm",
  9. items:[{
  10. id:'upload',
  11. name:'upload',
  12. inputType:"file",
  13. fieldLabel:'上传图片',
  14. xtype:'textfield',
  15. anchor:'40%'
  16. },{
  17. xtype:'box',
  18. id:'browseImage',
  19. fieldLabel:"预览图片",
  20. autoEl:{
  21. width:300,
  22. height:350,
  23. tag:'img',
  24. //type:'image',
  25. src:Ext.BLANK_IMAGE_URL,
  26. style:'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',
  27. complete:'off',
  28. id:'imageBrowse'
  29. }
  30. }],
  31. //form事件
  32. listeners:{
  33. 'render':function(f){
  34. //
  35. this.form.findField('upload').on('render',function(){
  36. //通過change事件,图片也动态跟踪选择的图片变化
  37. Ext.get('upload').on('change',
  38. function(field,newValue,oldValue){
  39. //得到选择的图片路径
  40. varurl='file://'
  41. +Ext.get('upload').dom.value;
  42. //alert("url="+url);
  43. //是否是规定的图片类型
  44. if(img_reg.test(url)){
  45. if(Ext.isIE){
  46. varimage=Ext.get('imageBrowse').dom;
  47. image.src=Ext.BLANK_IMAGE_URL;//覆盖原来的图片
  48. image.filters
  49. .item("DXImageTransform.Microsoft.AlphaImageLoader").src=url;
  50. }//支持FF
  51. else{
  52. Ext.get('imageBrowse').dom.src=Ext
  53. .get('upload').dom.files
  54. .item(0).getAsDataURL()
  55. }
  56. }
  57. },this);
  58. },this);
  59. }
  60. },
  61. buttons:[{
  62. text:"提交",
  63. name:"submit",
  64. handler:submit
  65. }]
  66. });
  67. //上传图片类型
  68. varimg_reg=/\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/
  69. });
  70. //上傳圖片到服务器,
  71. functionsubmit(){
  72. Ext.getCmp("fileUploadForm").getForm().submit({
  73. url:"uploadAction.action",
  74. method:"POST",
  75. success:function(form,action){
  76. alert("success");
  77. },
  78. failure:function(form,action){
  79. alert("failure");
  80. }
  81. });
  82. }


传入后台处理,使用struts2
Java代码收藏代码
  1. packagecom.cocobra.action;
  2. importjava.io.*;
  3. importjava.util.Date;
  4. importjava.util.UUID;
  5. importorg.apache.struts2.ServletActionContext;
  6. importcom.opensymphony.xwork2.ActionSupport;
  7. publicclassUploadActionextendsActionSupport{
  8. /**
  9. *
  10. */
  11. privatestaticfinallongserialVersionUID=1L;
  12. privateFileupload;
  13. privateStringuploadContentType;
  14. privateStringuploadFileName;//fileName前面必須和uplaod一致,不然找不到文件
  15. publicFilegetUpload(){
  16. returnupload;
  17. }
  18. publicvoidsetUpload(Fileupload){
  19. this.upload=upload;
  20. }
  21. publicStringgetUploadContentType(){
  22. returnuploadContentType;
  23. }
  24. publicvoidsetUploadContentType(StringuploadContentType){
  25. this.uploadContentType=uploadContentType;
  26. }
  27. publicStringgetUploadFileName(){
  28. returnuploadFileName;
  29. }
  30. publicvoidsetUploadFileName(StringuploadFileName){
  31. this.uploadFileName=uploadFileName;
  32. }
  33. //上传文件的文件名
  34. privateStringgetFileExp(Stringname){
  35. intpos=name.lastIndexOf(".");
  36. returnname.substring(pos);
  37. }
  38. privatestaticfinalintBUFFER_SIZE=16*1024;
  39. publicStringexecute()throwsException{
  40. Dated=newDate();
  41. System.out.println("uploadFileName="+this.uploadFileName);
  42. //upload--wapps下面的文件夹,用来存放图片
  43. StringtoSrc=ServletActionContext.getServletContext().getRealPath("upload")+"/"+d.getTime()+getFileExp(this.uploadFileName);//使用時間戳作為文件名
  44. System.out.println("toFile="+toSrc);
  45. FiletoFile=newFile(toSrc);
  46. writeFile(this.upload,toFile);
  47. returnSUCCESS;
  48. }
  49. privatestaticvoidwriteFile(Filesrc,Filedst){
  50. System.out.println("==文件寫入==");
  51. try{
  52. InputStreamin=null;
  53. OutputStreamout=null;
  54. try{
  55. in=newBufferedInputStream(newFileInputStream(src),
  56. BUFFER_SIZE);
  57. out=newBufferedOutputStream(newFileOutputStream(dst),
  58. BUFFER_SIZE);
  59. byte[]buffer=newbyte[BUFFER_SIZE];
  60. while(in.read(buffer)>0){
  61. out.write(buffer);
  62. }
  63. }finally{
  64. if(null!=in){
  65. in.close();
  66. }
  67. if(null!=out){
  68. out.close();
  69. }
  70. }
  71. }catch(Exceptione){
  72. e.printStackTrace();
  73. }
  74. System.out.println("写入成功!");
  75. }
  76. }


struts2中的struts.xml 配置
Java代码收藏代码
  1. <actionname="uploadAction"class="com.cocobra.action.UploadAction">
  2. <interceptor-refname="fileUpload">
  3. <!--拦截器strut2自带的,指定上传文件的格式,如果不符合规定,将会自动拦截下来-->
  4. <paramname="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg</param>
  5. <paramname="maximumSize">20000000000</param>
  6. </interceptor-ref>
  7. <interceptor-refname="defaultStack"/>
  8. <resultname="success">/index.jsp</result>
  9. </action>
2
0
分享到:
评论

相关推荐

    EXtjs 图片批量上传

    本教程将深入探讨如何在ExtJS中实现图片的批量上传功能,以及与之相关的批量删除操作。 首先,批量上传图片的核心是利用HTML5的File API,它允许用户在不离开当前页面的情况下读取、处理和上传本地文件。在ExtJS中...

    ExtJS 4.2+JAVA通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)

    3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7...

    EXTJS网站后台以及JSP+JSTL+EL网站前台

    综合这些知识点,我们可以理解这个项目是一个集成了EXTJS前端和JSP+JSTL+EL后端的网站应用,具备图片和视频上传、播放以及地图显示等功能。开发这样的系统需要掌握前端和后端的多种技术,并能有效地协调前后端数据...

    Extjs图片上传 带过滤和缩略图

    在"Extjs图片上传 带过滤和缩略图"这个主题中,我们将深入探讨如何使用ExtJS实现图片上传功能,同时结合过滤和缩略图显示,以提升用户体验。 1. **图片上传组件**: 在ExtJS中,可以使用`Ext.form.FileField`或`...

    extjs+servlet实现图片上传

    在本示例中,我们将探讨如何结合ExtJS 3和Servlet技术来实现图片上传功能。 首先,我们需要理解ExtJS的组件体系。在ExtJS中,`FileUploadField`是一个专门用于文件上传的表单字段。通过这个组件,用户可以在浏览器...

    最新JAVA通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)Eclipse版本

    3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7...

    ssh+extjs全注解的上传、分页、验证码的demo

    验证码功能通常是为了防止机器人或恶意用户的自动操作,EXTJS可以生成一个图像验证码,用户需要输入图像上显示的字符。在后台,Struts2 Action会验证用户输入的验证码是否正确。 总的来说,这个SSH+EXTJS的demo展示...

    extjs图片上传

    在EXTJS框架中,图片上传功能是一个常见的需求,尤其在构建富客户端应用时。EXTJS提供了强大的组件模型,使得开发人员能够轻松实现这样的功能。本文将深入探讨如何使用EXTJS来实现图片上传,包括多图预览、上传以及...

    ExtJS带进度条的多文件上传和图片预览

    在这个项目中,我们可能使用了`Ext.form.Panel`来创建表单,`Ext.ProgressBar`来显示文件上传进度,以及`Ext.window.Window`来弹出图片预览窗口。 2. **多文件上传**:多文件上传功能允许用户一次选择并上传多个...

    extjs 上传图片(可以上传其他类型的文件)asp 实现

    在本文中,我们将深入探讨如何使用ExtJS框架与ASP(Active Server Pages)技术结合,实现一个功能完善的文件上传功能,特别是针对图片和其他类型文件的上传。ExtJS是一款强大的JavaScript库,用于构建桌面级的Web...

    最新JAVA通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)MyEclipse版本

    3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7...

    ExtJs批量文件上传显示进度前后代码

    在本文中,我们将深入探讨如何使用ExtJs3.0结合SWFUpload实现批量文件上传,并在上传过程中实时显示进度。这个技术方案适用于那些需要在Web应用程序中处理大量文件上传的场景,例如用户需要一次性上传多张图片或者...

    通用后台管理系统(ExtJS 4.2 + WebMatrix).zip

    2、ExtJS的HtmlEditor的图片文件上传插件。 3、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 4、导入导出Excel数据,支持xlsx和xls文件。 5、资源管理(菜单管理)。 6...

    通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8).pdf

    3. ExtJS 的 HtmlEditor 的图片文件上传插件。 4. Grid 列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5. 导入导出 Excel 数据,支持 xlsx 和 xls 文件。 6. 资源管理...

    ExtJS 编写的批量上传(java实现)

    总的来说,"ExtJS编写的批量上传(Java实现)"涉及到的技术主要包括ExtJS的表单组件、文件上传、前端图片压缩、Ajax通信以及Java后端的文件处理。这个项目充分展示了前端与后端如何协同工作,为用户提供高效、安全的...

    EXTJS4开发的图片文章管理项目实例

    在这个项目中,EXTJS4被用来设计和实现用户界面,包括表格、表单、面板、树形视图等元素,以展示和编辑文章和图片信息。EXTJS4的MVC架构使得代码组织清晰,便于维护和扩展。 JAVA作为后端语言,通常与EXTJS4结合...

    Extjs多文件上传

    2. 文件预览:在用户选择文件后,可以添加额外的逻辑来显示预览图像,尤其是对于图片文件。这通常通过读取文件的Blob数据并利用HTML5的`FileReader` API来实现。 3. 处理文件上传:当用户点击“上传”按钮时,我们...

    ext_image.rar_ext_image_extjs_extjs 4.2 img_extjs image_extjs图片上

    图片上传功能通常借助于ExtJS的表单组件(`Ext.form.Panel`)和上传字段(`Ext.form.field.File`)。在ExtJS 4.2中,上传组件可能需要配合第三方插件,如SWFUpload或jQuery File Upload,以实现浏览器兼容性和异步...

    extjs 多文件上传代码实例

    在本文中,我们将深入探讨如何使用ExtJS...总的来说,实现ExtJS的多文件上传涉及到客户端的表单设计、文件选择、异步提交,以及服务器端的文件接收和存储。理解这些关键步骤,你就能创建一个功能完善的多文件上传系统。

Global site tag (gtag.js) - Google Analytics