`

AsWing+Java上传文件

阅读更多

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics