问题:动态添加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 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...
在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...
Struts2.0 + Ext 实现的文件上传功能是一种常见的Web开发技术,它结合了Struts2框架的控制器层和Ext JavaScript库的前端组件。在Java Web应用中,文件上传通常用于用户向服务器提交文件,如图片、文档等。下面我们将...
在本文中,我们将深入探讨如何使用Ext3.2与Struts框架实现文件上传功能,同时解决中文乱码问题。这两个技术结合在一起,可以为Web应用提供高效、稳定的文件上传解决方案。 首先,Ext3.2是一个JavaScript库,它提供...
总结来说,Struts2提供的文件上传和下载功能结合多个拦截器的使用,使得开发者能够轻松地处理Web应用中的文件操作。通过理解并实践本项目,你将能够提升你的Struts2技能,更好地应对实际开发中的各种挑战。
网上有些这样的例子,但是下了几个都没有跑起来,哎,希望那些发文章的人要发就发全的,别发个半生不熟的。... 现在自己整理了一个Struts2+ExtJS2实现文异步文件上传,没法上传图片无法看到效果,直接上源码吧。
对于多文件上传,Struts2和ExtJS3同样提供了支持。在Struts2中,只需在`Action`类中添加一个`List<File>`或`List<CommonsMultipartFile>`类型的字段。而在ExtJS3中,可以通过设置`allowMultiple: true`让`FileField`...
在本文中,我们将深入探讨如何使用ExtJS 4与Struts2框架实现文件上传功能。ExtJS是一个强大的JavaScript库,提供了丰富的用户界面组件,而Struts2是Java Web开发中的一个MVC框架,用于处理后端业务逻辑。下面,我们...
描述中提到"研究了半天的ExtJs+Struts2多文件上传",暗示这个项目可能包含了一种或多文件同时上传的解决方案。在多文件上传中,用户可以选择多个文件,一次性上传,这在现代Web应用中非常常见,例如图片库、文档分享...
"EXT+Struts2"是一个常见的技术组合,用于构建企业级的Web应用程序,特别是涉及到文件上传功能时。EXT是一个强大的JavaScript库,它提供了丰富的用户界面组件和交互效果,而Struts2是Java EE平台上的一个MVC框架,...
在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...
Struts2有专门的动作(Action)和支持文件上传的拦截器,例如`FileUploadInterceptor`,可以方便地处理上传的文件。 6. **服务器端处理**:无论使用哪种前端上传方案,服务器端都需要处理接收到的文件。这包括验证...
- `<constant name="struts.multipart.maxSize" value="1000000000"/>`:设置文件上传的最大大小为1GB。 - `<package name="teaweb" extends="json-default" namespace="/">`:定义了一个名为`teaweb`的包,并继承...
【标题】: "一个基于Struts和Ext的JSP文件上传网盘系统" 【描述】: 本项目是一个实现文件上传和管理功能的JSP网盘应用,它结合了Struts框架与Ext JS前端库来构建用户界面和处理业务逻辑。Struts作为一个成熟的MVC...
在处理文件上传和下载这类常见任务时,Struts2提供了一种简洁的方法,尤其是通过注解进行配置,可以实现“零XML”配置,使得开发过程更加高效。本文将深入探讨如何使用Struts2的注解来实现文件的上传与下载。 首先...
1. **配置依赖**:在使用Struts2进行文件上传之前,需要添加Struts2的文件上传插件。通常这会是`struts2-convention-plugin`和`struts2-file-uploading-plugin`。在`pom.xml`或`build.gradle`中添加相应的依赖。 2....
本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...
Struts2则是一个基于MVC模式的Java Web框架,提供了更高级别的抽象,简化了文件上传的处理流程。 总结,实现"Ext相册实现文件拖拽,实时上传进度,本地预览"的功能,需要结合EXT4的前端组件能力、HTML5的File API和...
7. 插件整合:Struts2的插件机制允许开发者添加更多的功能,比如上传文件、国际化支持等。 通过这个项目,开发者不仅可以学习到如何将这两者有效地整合,还可以了解到如何在实际项目中管理数据流、处理用户交互以及...
在本篇“Struts2学习笔记十三”中,我们将深入探讨Struts2如何处理文件上传和下载,这是Web开发中常见的需求。 文件上传在Web应用中广泛用于让用户提交图片、文档或其他类型的数据。Struts2提供了一个名为`...