Flex+JAVA+Servlet 实现上传_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Flex+JAVA+Servlet 实现上传

Flex+JAVA+Servlet 实现上传

 2013/8/20 12:37:55  aimy_2012  程序员俱乐部  我要评论(0)
  • 摘要:Flex页面代码<?xmlversion="1.0"encoding="utf-8"?><mx:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009"xmlns:s="library://ns.adobe.com/flex/spark"creationComplete="init()"xmlns:mx="library://ns.adobe.com/flex/mx"minWidth="955"minHeight="600">
  • 标签:实现 上传 Java Servlet Flex

Flex 页面代码
class="java">
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="init()"
				xmlns:mx="library://ns.adobe.com/flex/mx" 
				minWidth="955" minHeight="600">
	<fx:Declarations>
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import flash.events.*;
			import flash.net.FileReference;
			
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			
			private var file: FileReference;
			
			private function init(): void{
				Security.allowDomain("*");
				file = new FileReference();
				file.addEventListener(ProgressEvent.PROGRESS, onProgress);
				file.addEventListener(Event.SELECT, onSelect);
				file.addEventListener(Event.COMPLETE, completeHandle);
			}
			
			private function completeHandle(event:Event):void{
				Alert.show("恭喜你,上传成功");
			}
			
			private function upload(): void{
				var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.png)", "*.jpg;*.jpeg;*.png;*.xlsx");
				var allTypes:Array = new Array(imageTypes);
				file.browse(allTypes);
				file.browse();
			}
			private function onSelect(e: Event): void{
				Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
					"确认上传",
					Alert.YES|Alert.NO,
					null,
					proceedWithUpload);
			}
			
			private function onProgress(e: ProgressEvent): void{
				lbProgress.text = " 已上传 " + e.bytesLoaded
					+ " 字节,共 " + e.bytesTotal + " 字节";
				var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
				bar.setProgress(proc, 100);
				bar.label= "当前进度: " + " " + proc + "%";
			}
			
			private function proceedWithUpload(e: CloseEvent): void{
				if (e.detail == Alert.YES){
					var request: URLRequest = new URLRequest("ImportExcelServlet");
					try {
						file.upload(request);
					} catch (error:Error) {
						Alert("上传失败");
					}
					
				}
			}
		]]>
	</fx:Script>
	<mx:Canvas width="100%" height="100%" x="10" y="170" fontSize="15">
		<mx:VBox width="100%" horizontalAlign="center">
			<mx:Label id="lbProgress" text="上传"/>
			<mx:ProgressBar id="bar" labelPlacement="bottom"
							minimum="0" visible="true" maximum="100" label="当前进度: 0%"
							direction="right" mode="manual" width="200"/>
			
			<mx:Button label="上传文件" click="upload();"/>
		</mx:VBox>
	</mx:Canvas>
</mx:Application>



JAVA 代码
package com.sddl.util;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *
 * @author crystal
 */
public class ImportExcelServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    // 定义文件的上传路径

    private String uploadPath = "d:\\";

// 限制文件的上传大小

    private int maxPostSize = 100 * 1024 * 1024;

    public ImportExcelServlet() {
        super();
    }

    public void destroy() {
        super.destroy();
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Access !");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

//保存文件到服务器中

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(4096);
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(maxPostSize);
        try {
            List fileItems = upload.parseRequest(request);
            Iterator iter = fileItems.iterator();
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (!item.isFormField()) {
                    String name = item.getName();
                    System.out.println(name);
                    try {
                        item.write(new File(uploadPath + name));
//                        SaveFile s = new SaveFile();

//                        s.saveFile(name);

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
            System.out.println(e.getMessage() + "结束");
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>

}


web.xml
<!-- test -->
	<servlet>
		<servlet-name>ImportExcelServlet</servlet-name>
		<servlet-class>com.sddl.util.ImportExcelServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ImportExcelServlet</servlet-name>
		<url-pattern>/ImportExcelServlet</url-pattern>
	</servlet-mapping>

来源:http://yexin218.iteye.com/blog/207219
发表评论
用户名: 匿名