1.Servlet代码
package com.fpt.servlet;
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;
importorg.apache.commons.fileupload.FileUploadException;
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
importorg.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadServlet extends HttpServlet {
// 定义文件的上传路径
private String uploadPath = "f:/";
// 限制文件的上传大小
private int maxPostSize = 100 * 1024 *1024;
public FileUploadServlet() {
super();
}
public void destroy() {
super.destroy();
}
protected voidprocessRequest(HttpServletRequest request,
HttpServletResponseresponse) throws ServletException, IOException {
System.out.println("Access!");
//uploadPath=request.getSession().getServletContext().getRealPath("");
System.out.println(uploadPath);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out =response.getWriter();
//保存文件到服务器中
DiskFileItemFactory factory= new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload = newServletFileUpload(factory);
upload.setSizeMax(maxPostSize);
try {
ListfileItems = upload.parseRequest(request);
Iterator iter= fileItems.iterator();
while(iter.hasNext()) {
FileItemitem = (FileItem) iter.next();
if(!item.isFormField()) {
Stringname = item.getName();
System.out.println(name);
try{
item.write(newFile(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-folddefaultstate="collapsed"
// desc="HttpServlet methods. Click on the + signon the left to edit the code.">
protected void doGet(HttpServletRequestrequest,
HttpServletResponseresponse) throws ServletException, IOException {
processRequest(request,response);
}
protected void doPost(HttpServletRequestrequest,
HttpServletResponseresponse) throws ServletException, IOException {
processRequest(request,response);
}
public String getServletInfo() {
return "file upload";
}
}
2.flex上传组件
<?xml version="1.0"encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" isPopUp="true"
layout="vertical" width="100%" minWidth="400" height="100%"minHeight="200"
title="上传页面"creationComplete="initCom()">
<mx:Metadata>
[Event(name="uploadComplete",type="flash.events.Event")]
[Event(name="uploadProgress",type="flash.events.ProgressEvent")]
[Event(name="uploadCancel",type="flash.events.Event")]
[Event(name="uploadIOError",type="flash.events.IOErrorEvent")]
[Event(name="uploadSecurityError",type="flash.events.SecurityErrorEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
importmx.controls.*;
importmx.managers.*;
importmx.events.*;
importflash.events.*;
importflash.net.*;
private var_strUploadUrl:String;
private var_refAddFiles:FileReferenceList;
private var_refUploadFile:FileReference;
private var_arrUploadFiles:Array;
private var_numCurrentUpload:Number =0;
// SetuploadUrl
publicfunction set uploadUrl(strUploadUrl:String):void {
_strUploadUrl= strUploadUrl;
}
//Initalize
privatefunction initCom():void {
_arrUploadFiles= newArray();
enableUI();
uploadCheck();
}
// Called toadd file(s) for upload
privatefunction addFiles():void {
_refAddFiles= new FileReferenceList();
_refAddFiles.addEventListener(Event.SELECT,onSelectFile);
_refAddFiles.browse();
}
// Calledwhen a file is selected
privatefunction onSelectFile(event:Event):void {
vararrFoundList:Array = new Array();
//Get list of files from fileList, make list of files already onupload list
for(var i:Number = 0; i < _arrUploadFiles.length; i++){
for(var j:Number = 0; j < _refAddFiles.fileList.length;j++) {
if(_arrUploadFiles[i].name == _refAddFiles.fileList[j].name) {
arrFoundList.push(_refAddFiles.fileList[j].name);
_refAddFiles.fileList.splice(j,1);
j--;
}
}
}
if(_refAddFiles.fileList.length >= 1){