`

struts2,ext 多文件上传

 
阅读更多

问题:动态添加file输入框,按照一般,前台可以用[i]数组,Action用List接收


 ,struts2会绑定好数据,这时候,文件可以以List获得,但是多文件的name,没法采用这种方法获得List

 

如:

var imgCount=0;
//         	var attach= Ext.ComponentQuery.query('filefield[name^=attach]');

    		function addFile(){
    			
    			var form = Ext.getCmp("form");  
    			var field=  {
                    	margin:'10px',
                        xtype: 'fieldcontainer',
                        layout: { type: 'hbox' },
                        fieldDefaults: { labelAlign: 'right', labelWidth: 90, width: 290 },
                        //items: [inventoryField ]
                        items: [  {
                            xtype: 'filefield',
//                            name: 'attach['+imgCount+']',
                            name: 'attach',
                            fieldLabel: '图片',
                            allowBlank: false,
                            anchor: '100%',
                            buttonText: '选择图片',
                            emptyText: '--请选择图片--'
                        },{  
                            xtype : 'button',  
                            text : '删除',  
                            iconCls : 'silk_page_add',  
                            handler : function(button ) {  
                            	button .up('#form').remove(button.up('fieldcontainer'));
                            }  
                        }]
                    };
    			form.add(field);
    			
    			imgCount++;
    		}
    		
    		


		});

 解决:

          xtype: 'filefield',
    //    name: 'attach['+imgCount+']', //注释掉
          name: 'attach',

 name不用拼接,直接用同一个name。后台直接以List接收

        private List<File> attach;
	private List<String> attachFileName;
	private List<String> attachContentType;

 

 

----------------------------------

上传文件到目录的方法

 

/**
	 *  上传文件
	 * @param file
	 * @param curUserId
	 * @return 文件相对目录
	 * @throws Exception
	 */
	private String uploadDir(File file,String imageName,String curUserId) throws Exception{
		//基于myFile创建一个文件输入流  
		InputStream is = new FileInputStream(file);  
		String filePath = this.getClass().getClassLoader().getResource("/")
				.getPath();
		int index = filePath.indexOf("webapps");
//		int index = filePath.indexOf("WEB-INF");
		String contentPath = filePath.substring(0, index);
		String savepath = contentPath + "upload" + "/" + curUserId + "/";
		savepath = savepath.replace("%20", " ");
		
		
//		ServletActionContext.getServletContext().getRealPath("img");
		
		// 设置目标文件
		File toFile = new File(savepath);  
		if (!toFile.exists()) {
			toFile.mkdirs();
		}
		Date date = new Date();
//		SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmsssss"); 
//		String dateName = formatter.format(date);
		String dateName = UUID.randomUUID().toString();
		String newName = dateName + imageName;
		
		// 创建一个输出流  
		OutputStream os = new FileOutputStream(savepath + newName);  
		//设置缓存  
		byte[] buffer = new byte[1024];  
		int length = 0;  
		//读取myFile文件输出到toFile文件中  
		while ((length = is.read(buffer)) > 0) {  
			os.write(buffer, 0, length);  
		}  
		//关闭输入流  
		is.close();  
		//关闭输出流  
		os.close();
		
		return "/" + curUserId + "/" +  newName;
//		data.setFilePath("/" + curUserId + "/" +  newName);
	}

 

分享到:
评论

相关推荐

    ext struts2 swfupload 跨域文件上传

    "ext struts2 swfupload 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...

    Ext+Struts2多文件上传

    在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...

    struts_ext_upload4文件上传

    Struts2.0 + Ext 实现的文件上传功能是一种常见的Web开发技术,它结合了Struts2框架的控制器层和Ext JavaScript库的前端组件。在Java Web应用中,文件上传通常用于用户向服务器提交文件,如图片、文档等。下面我们将...

    Ext3.2 + struts 文件上传实例

    在本文中,我们将深入探讨如何使用Ext3.2与Struts框架实现文件上传功能,同时解决中文乱码问题。这两个技术结合在一起,可以为Web应用提供高效、稳定的文件上传解决方案。 首先,Ext3.2是一个JavaScript库,它提供...

    Struts2实现单个文件多个文件上传与下载-多个拦截器

    总结来说,Struts2提供的文件上传和下载功能结合多个拦截器的使用,使得开发者能够轻松地处理Web应用中的文件操作。通过理解并实践本项目,你将能够提升你的Struts2技能,更好地应对实际开发中的各种挑战。

    Extjs+Struts2实现异步文件上传

    网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。

    struts2+extjs3 单/多文件上传

    对于多文件上传,Struts2和ExtJS3同样提供了支持。在Struts2中,只需在`Action`类中添加一个`List&lt;File&gt;`或`List&lt;CommonsMultipartFile&gt;`类型的字段。而在ExtJS3中,可以通过设置`allowMultiple: true`让`FileField`...

    Extjs4文件上传,后台struts2

    在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...

    能运行的ExtJs+Struts2文件上传

    描述中提到"研究了半天的ExtJs+Struts2多文件上传",暗示这个项目可能包含了一种或多文件同时上传的解决方案。在多文件上传中,用户可以选择多个文件,一次性上传,这在现代Web应用中非常常见,例如图片库、文档分享...

    ext+struts2

    "EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...

    使用ExtJs的插件UploadDialog+struts2.0实现多文件上传

    在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...

    Ext 文件上传参考文档

    Struts2有专门的动作(Action)和支持文件上传的拦截器,例如`FileUploadInterceptor`,可以方便地处理上传的文件。 6. **服务器端处理**:无论使用哪种前端上传方案,服务器端都需要处理接收到的文件。这包括验证...

    搭建EXTJS和STRUTS2框架(ext和struts2简单实例)

    - `&lt;constant name="struts.multipart.maxSize" value="1000000000"/&gt;`:设置文件上传的最大大小为1GB。 - `&lt;package name="teaweb" extends="json-default" namespace="/"&gt;`:定义了一个名为`teaweb`的包,并继承...

    一个JSP网盘(运用Struts+Ext上传技术)

    【标题】: "一个基于Struts和Ext的JSP文件上传网盘系统" 【描述】: 本项目是一个实现文件上传和管理功能的JSP网盘应用,它结合了Struts框架与Ext JS前端库来构建用户界面和处理业务逻辑。Struts作为一个成熟的MVC...

    Struts2使用注解实现文件的上传与下载

    在处理文件上传和下载这类常见任务时,Struts2提供了一种简洁的方法,尤其是通过注解进行配置,可以实现“零XML”配置,使得开发过程更加高效。本文将深入探讨如何使用Struts2的注解来实现文件的上传与下载。 首先...

    struts2上传下载文件

    1. **配置依赖**:在使用Struts2进行文件上传之前,需要添加Struts2的文件上传插件。通常这会是`struts2-convention-plugin`和`struts2-file-uploading-plugin`。在`pom.xml`或`build.gradle`中添加相应的依赖。 2....

    ext + struts2 例子

    本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...

    Ext相册实现文件拖拽,实时上传进度,本地预览

    Struts2则是一个基于MVC模式的Java Web框架,提供了更高级别的抽象,简化了文件上传的处理流程。 总结,实现"Ext相册实现文件拖拽,实时上传进度,本地预览"的功能,需要结合EXT4的前端组件能力、HTML5的File API和...

    Ext+struts2项目

    7. 插件整合:Struts2的插件机制允许开发者添加更多的功能,比如上传文件、国际化支持等。 通过这个项目,开发者不仅可以学习到如何将这两者有效地整合,还可以了解到如何在实际项目中管理数据流、处理用户交互以及...

    struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)

    在本篇“Struts2学习笔记十三”中,我们将深入探讨Struts2如何处理文件上传和下载,这是Web开发中常见的需求。 文件上传在Web应用中广泛用于让用户提交图片、文档或其他类型的数据。Struts2提供了一个名为`...

Global site tag (gtag.js) - Google Analytics