浏览 4173 次
锁定老帖子 主题:Ext +Struts2 的文件上传
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-15
这回有时间,搞搞上传了。 去找了个半成品,改改还是OK 了。。。 先看图片吧。 上传文件 的 textfield ,添加了一个鼠标焦点事件。 点击的话,弹出上传窗口。 剩下就是上传文件的过程了, 用struts2 自带的上传组件。 贴贴关键代码吧: logger.debug("++++++++"+uploadFileName); if (uploadFileName.getBytes().length != uploadFileName.length()) { uploadFileName=System.currentTimeMillis()+""; } this.savePath =Thread.currentThread().getContextClassLoader().getResource("").getPath(); savePath=savePath.substring(1, savePath.length()-16)+uploadFileName; logger.debug(savePath); File newPath = new File(savePath); Tools.CopyFile(upload,newPath); this.responseWrite("{\"success\":true,\"msgs\":'" +uploadFileName+ "'}"); logger.debug("{\"success\":true,\"msg\":\"" +uploadFileName+ "\"}"); return null; 在界面中,我们可以获取到 File 对象和上传的文件名称。 然后,就是你根据上传的的文件进行整理了。当然,这里还能根据 文件后缀进行过滤, 暂时没这样的要求,就没写判断。这里判断了一下中文文件名称。 要注意的是, struts2上传文件大小, 拦截器默认的是 2M 左右。 如果需要的话,可以自己在 sturts.xml 里面修改。 <constant name= "struts.multipart.maxSize" value="10242880"></constant> 前台界面,也没什么难度,都是很简单的控件,当然,我是抄袭别人的了(懒的快发霉了,不想发明轮子)。 主要的也就是这么一段: var formUpload = new Ext.form.FormPanel({ baseCls: 'x-plain', labelWidth: 80, fileUpload:true, defaultType: 'textfield', items: [{ xtype: 'textfield', fieldLabel: '文 件', name: 'upload', inputType: 'file', allowBlank: false, blankText: '请上传文件', anchor: '90%' }] }); 在这个过程中,发现一个奇怪的问题。就是上传完成以后,返回的json.. this.responseWrite("{\"success\":true,\"msgs\":'" +uploadFileName+ "'}"); 代码里面就这样写的, 可是通过调试,前台多了一个 <per> 标签。 json一直报错,郁闷的很,后来 把这个东西给过滤了,还不知道为什么产生这个东西。 代码整理好了就发上来。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-06-15
修改contenttype 为html/text 之类的
|
|
返回顶楼 | |