- 浏览: 580568 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
smilezhouwei:
请问CruiseControl在加载jar包时,由于jar包过 ...
修改CruiseControl的端口 -
zengxuefei:
不起作用啊,有bug
Flex+Java多文件上传 -
lzeus:
模仿的tomcat源码吧?
java事件处理机制(自定义事件)【转】 -
yangbobestone:
...
FreeMarker整合Struts2 -
fddjxllren:
那是因为你没配置事务,楼主的那个主要是针对事务的写法
Spring2.5+JUnit4单元测试
AsWing+Java上传文件
UI是用AsWing实现比较简单
客户端FileUpload.as
package warehousing.view { import flash.events.*; import flash.net.FileFilter; import flash.net.FileReference; import flash.net.URLRequest; import flash.net.URLRequestMethod; import org.aswing.AsWingManager; import org.aswing.JButton; import org.aswing.JFrame; import org.aswing.JLabel; import org.aswing.JPanel; import org.aswing.JTextField; import org.aswing.geom.IntDimension; public class FileUpload extends JFrame{ private var uploadURL:URLRequest; private var file:FileReference; private var _frm:JFrame; private var _mainPanel:JPanel; private var _filePath:JTextField; private var _browseBtn:JButton; private var _uploadBtn:JButton; public function FileUpload() { super(null, "上传", true); AsWingManager.initAsStandard(this); uploadURL = new URLRequest(); file = new FileReference(); configureListeners(file); _mainPanel = new JPanel(); _filePath = new JTextField("", 40); _filePath.setEditable(false); _browseBtn = new JButton("浏览"); _browseBtn.addEventListener(MouseEvent.CLICK, __onBrowse); _uploadBtn = new JButton("上传"); _uploadBtn.addEventListener(MouseEvent.CLICK, __onUpload); _uploadBtn.setVisible(false); _mainPanel.appendAll(new JLabel("文件"), _filePath, _browseBtn, _uploadBtn); this.getContentPane().append(_mainPanel); this.setSize(new IntDimension(500, 500)); this.show(); } private function __onBrowse(event:MouseEvent):void{ file.browse(getTypes()); } private function __onUpload(event:MouseEvent):void{ uploadURL.method = URLRequestMethod.POST; uploadURL.contentType = "multipart/form-data"; uploadURL.url = "http://testadmin2.1001m.com:84/upload"; file.upload(uploadURL, "file", false); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.CANCEL, cancelHandler); dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(Event.SELECT, selectHandler); dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler); } private function getTypes():Array { var allTypes:Array = new Array(getXlsTypeFilter(), getImageTypeFilter(), getTextTypeFilter()); return allTypes; } private function getXlsTypeFilter():FileFilter { return new FileFilter("Xls (*.xls)", "*.xls"); } private function getImageTypeFilter():FileFilter { return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png"); } private function getTextTypeFilter():FileFilter { return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf"); } private function cancelHandler(event:Event):void { trace("cancelHandler: " + event); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function uploadCompleteDataHandler(event:DataEvent):void { trace("uploadCompleteData: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { var file:FileReference = FileReference(event.target); trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function selectHandler(event:Event):void { var file:FileReference = FileReference(event.target); trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url); this._filePath.setText(file.name); _uploadBtn.setVisible(true); } } }
服务端UploadServlet.java
package com.xlands.ihome2.warehousing; import java.io.File; import java.io.IOException; import java.util.Iterator; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; public class UploadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { saveFile(req, resp); } public void saveFile(HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException { CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); commonsMultipartResolver.setDefaultEncoding("utf-8"); if (commonsMultipartResolver.isMultipart(request)) { MultipartHttpServletRequest multipartRequest = commonsMultipartResolver .resolveMultipart(request); Iterator iter = multipartRequest.getFileNames(); String webUrl = request.getSession().getServletContext() .getRealPath("/"); // 获取当前程序的路径 File filePath = new File(webUrl + "uploadDir"); // 拼写成完整的路径 if (!filePath.exists()) { filePath.mkdirs(); } for (; iter.hasNext();) { MultipartFile file = multipartRequest.getFile((String) iter .next()); if (file != null) { File localFile = new File(file.getOriginalFilename()); String fileName = filePath + File.separator + file.getOriginalFilename(); // 拼成完整的文件保存路径加文件 file.transferTo(new File(fileName)); // 保存文件到服务器 } } } } }
在web.xml中添加配置
<!-- 上传的servlet --> <servlet> <servlet-name>upload</servlet-name> <servlet-class>com.xlands.ihome2.warehousing.UploadServlet</servlet-class> <init-param> <param-name>method</param-name> <param-value>saveFile</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>upload</servlet-name> <url-pattern>/upload</url-pattern> </servlet-mapping>
附件commons-fileupload-1.2.1.jar
- commons-fileupload-1.2.1.jar (56.4 KB)
- 下载次数: 7
发表评论
-
AS3 条件编译
2013-06-07 09:38 1308转:http://www.lite3.cn/blog/?p= ... -
TextField没有buttonMode的方法..
2010-12-10 16:28 2300TextField没有buttonMode的方法..不过由于T ... -
ActionScript 处理html超级链接
2010-12-09 11:14 2128ActionScript 处理html超级链接 p ... -
通过代理传参数
2010-07-02 11:43 1391通过代理传参数 package com.xlands.uti ... -
ArrayUtils
2010-07-02 11:36 1502/* Copyright aswing.org, s ... -
将数组随机排序后返回
2010-06-30 16:40 1819将数组随机排序后返回 方法一 /** * ... -
AS类中跳转
2010-06-29 10:22 1799AS类中跳转 navigate ... -
Flash与Javascript交互时可用ExternalInterface类
2010-06-29 10:17 3648Flash与Javascript交互时可用ExternalIn ... -
转载:[as hack技术]垃圾回收机强制执行
2010-06-29 09:47 1430转载:[as hack技术]垃圾回收机强制执行 http:// ... -
Flash中所支持的Html标签
2010-06-24 17:21 1367Flash中所支持的Html标签 ... -
navigateToURL()
2010-06-22 15:27 2493navigateToURL() public fun ... -
ActionScript中Http请求
2010-06-19 09:42 3074ActionScript中Http请求 因我是用MVC模式来 ... -
ActionScript字符串工具
2010-06-04 09:44 3263ActionScript字符串工具 package c ... -
加载外部SWF文件
2010-05-22 15:43 1359加载外部SWF文件 package mytest.dt { ... -
A*最最基础的非常非常好的寻路教程!
2010-05-08 10:01 2007最最基础的非常非常好 ... -
JTable单元格偏移
2010-05-07 11:15 1357如果Frame中有个表格JTable,且允许双击单元格编辑,那 ... -
ActionScript中日期正则表达式
2010-04-27 18:24 1270这里是判断YYYY-MM-DD这种格式的,基本上把闰年和 ... -
AS中使用JSON
2010-04-26 09:15 2993要使用json作为数据交换格式。需引入corelib Acti ... -
invalidateDisplayList
2010-03-31 14:39 1913当多次改变控件的某些属性(如 高,宽,数据)后,调用该方法以便 ... -
自定义组件XPropertyTable
2010-03-13 12:56 1577这个是基于AsWing组件库实现的 主要是对JTable和P ...
相关推荐
aswing1.5 很好的开源代码 带皮肤框架
pureMVC,aswing框架 包含文件: AsWing.swc PureMVC_AS3_2_0_4.swc
AsWing的Aeon皮肤更换实例,方便更换AsWing的皮肤。
AS3的aswing帮助文档! AS3的程序员必备物品。。详细的介绍哦
aswing API,与AsWing Book.pdf一起使用
aswing组件知识点
ASWING 中文教程 PureMvc模式的控件类
我用svn 生成了aswing2.0 src . 可以代替aswing的 swc 来开发项目。并且可以修改aswing 的代码。 有需要的可以下载玩下
aswing类库的下载,可以让大家使用现成的布局来显示对象很简单很方便
AsWing 教程中文版 要您5分一点也不多
AsWing Book.pdfAsWing Book.pdfAsWing Book.pdfAsWing Book.pdf
一个简单的Aswing皮肤制作教程,方便初学者设计个性化的皮肤
aswing的jar包,新手入门
用实例讲述aswing的入门,用一个日程管理的例子,详细的讲述了aswing的开发过程,注意从Google下载aswing源代码的时候下载1.0的swc就可以了,flex环境
aswing_a3_1.3.2_allinone
AsWing 2.0在12月12日发布了,增加了一些新的组件,如:JStepper(数字歩进器)、JDataChooser(日期选择器)、JAdvancedTable(高级表格,还未开发),全新的默认组件外观。新的外观自定义方式。 包内有源代码和SWC包。
AS3编写的UI包,包括GUI编辑器,以及全部的源码,值得下载
aswing 的 api 开发 学习aswing 的必要工具包
,这些都是前人总结的问题以及相对应的解决方案。
主要是解决aswing 换肤问题,用flex 生成的xml 转成对应的aswing代码