测试的MXML:
<?xml version="1.0" encoding="utf-8"?><br> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal"><br> <mx:Script><br> <![CDATA[<br> import mx.rpc.events.ResultEvent;<br> import flash.net.URLRequest;<br> import flash.net.FileReference;<br> import flash.events.Event;<br> <br> private var myFileRef:FileReference=null ;<br> <br> private function doClick():void{<br> up.send();<br> var request:URLRequest=new URLRequest("http://localhost:8080/webproject12/servlet/upload"); <br> myFileRef.upload(request);<br> }<br> private function fileBrowse():void{<br> myFileRef = new FileReference(); <br> myFileRef.addEventListener(Event.SELECT,doSelect);<br> myFileRef.browse();<br> }<br> private function doSelect(evt:Event):void{<br> imageName.text=myFileRef.name;<br> }<br> private function doResult(event:ResultEvent):void{<br> <br> }<br> ]]><br> </mx:Script><br> <mx:HBox height="100%" width="100%"><br> <mx:SWFLoader source="@Embed('swf/logo.swf')"/><br> </mx:HBox><br> <mx:HTTPService id="up" url="http://localhost:8080/webproject8/testhttp.jsp" result="doResult(event)" method="POST"><br> <mx:request xmlns=""><br> <username><br> {username.text}<br> </username><br> <br> </mx:request><br> </mx:HTTPService><br> <mx:VBox height="100%" width="100%"><br> <mx:Form><br> <mx:FormHeading label=" test load"/><br> <mx:FormItem label=" username:"><br> <mx:TextInput id="username"/><br> </mx:FormItem><br> <mx:FormItem label="Image Name" direction="horizontal"><br> <mx:TextInput id="imageName"/><br> <mx:Button click="fileBrowse()" label="Browse"/><br> </mx:FormItem><br> <mx:FormItem><br> <mx:Button label="提交" click="doClick()"/><br> </mx:FormItem><br> </mx:Form><br> </mx:VBox> <br> </mx:Application>
java:使用了组建 commons FILEUPLOAD
package org.zizi.servlet;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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;
public class UploadServelt extends HttpServlet {
private static final long serialVersionUID = -850828778548588525L;
private ServletContext sc;// application 上传组件要用
private String savePath;// 保存路径
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// 开始组建的使用
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List list = upload.parseRequest(request);// 解析传过来的内容 返回LIST
Iterator it = list.iterator();// 对LIST进行枚举
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
// 判断是文本信息还是对象(文件)
if (item.isFormField()) {
// 如果是文本信息返回TRUE
System.out.println("参数" + item.getFieldName() + ":"
+ item.getString("UTF-8"));
// 注意输出值的时候要注意加上编码
} else {
if (item.getName() != null && !item.getName().equals("")) {
System.out.println("上传文件的大小:" + item.getSize());
System.out.println("上传文件的类型:" + item.getContentType());
System.out.println("上传文件的名称:" + item.getName());
System.out.println(sc.getRealPath("/") + savePath);
// 保存在服务器硬盘中
File tempFile = new File(item.getName());// 临时FILE对象
// 此时有路径的名字
// TEMPFILE主要为了获取文件的单纯文件名
File file = new File(sc.getRealPath("/") + savePath,
"kdj"+(tempFile.getName()).substring((tempFile.getName()).length()-4,(tempFile.getName()).length()));
//在这里可以更改名字
//用subString 的方法截取后缀 就可以加上自定义名称放在第二个参数
// 这个FILE是真正要保存的文件
item.write(file);// 写入服务器
// 返回结果
request.setAttribute("upload.message", "上传成功");
} else {
request.setAttribute("upload.message", "没有选择上传文件");
}
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
request.setAttribute("upload.message", "上传没成功");
}
request.getRequestDispatcher("/uploadResult.jsp").forward(request, response);
}
public void init(ServletConfig config) {
//实现初始化文件 获取初始化参数 路径 和获取 一个全局服务器对象 备用
savePath = config.getInitParameter("savePath");// 初始化绑定参数 表明保存在哪
sc = config.getServletContext();
}
}