您的位置:首页 > 其它

flex 图片上传

2011-05-19 15:28 183 查看
1 flex端:

private function initImage():void{
Security.allowDomain("*");
myFileReference.addEventListener(Event.SELECT, onSelect);
myFileReference.addEventListener(Event.COMPLETE, completeHandler);
myFileReference.addEventListener("ioError", ioerrorHandler);
}

//上传处理方法
private function onSelect(e: Event): void{
Alert.show("上传 " + myFileReference.name + " (共 "+Math.round(myFileReference.size)+" 字节)?",
"确认上传",
Alert.YES|Alert.NO,
null,
selectHandler);
}
//处理上传功能
private function selectHandler(event:CloseEvent):void{

if(event.detail == Alert.NO)
return;
var request:URLRequest = new URLRequest(myIP.uri+"szyj/UploadHandler")
try
{
myFileReference.upload(request);
}
catch (error:Error)
{
Alert.show("上传文件出错:"+error.toString());
return;
}
}

//上传成功提示
private function completeHandler(event:Event):void{
photo1.text = "D:/files/"+myFileReference.name;
}
//文件上传错误提示
private function ioerrorHandler(event:Event):void{
Alert.show("上传文件出错:"+event.toString());
return;
}

private function fileReferenceCompleteHandler(e:Event):void
{
byteArray = myFileReference.data;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
loader.loadBytes(byteArray);
}
private function loaderCompleteHandler(e:Event):void
{
var bitmap:Bitmap = Bitmap(loader.content);
//bitmapbitmapData = bitmap.bitmapData;
userImage.source = bitmap;
}

2 servlet:

package com.telchina.upload;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
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 UploadFile extends HttpServlet {
private static final long serialVersionUID = 5425836142860976977L;

/** *//**
* 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://files//";
// 限制文件的上传大小
private int maxPostSize = 100 * 1024 * 1024; //最大100M
public UploadFile() {
super();
}
public void destroy() {
super.destroy();
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Access !");
request.setCharacterEncoding("UTF-8");// 防止文件名称带有汉字后传到服务器乱码
response.setContentType("text/html;charset=UTF-8");
//保存文件到服务器中
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
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();
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(name, "UTF-8"));

System.out.println(name);
try {
item.write(new File(uploadPath + name));
response.getWriter().write("上传成功。");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write(e.getMessage());
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
response.getWriter().write(e.getMessage());
System.out.println(e.getMessage() + "结束");
}
}
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";
}

@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.service(arg0, arg1);
System.out.println("---------------");
}
}

3 web.xml

<servlet>
<servlet-name>UploadHandler</servlet-name>
<servlet-class>com.telchina.upload.UploadFile</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>UploadHandler</servlet-name>
<url-pattern>/UploadHandler</url-pattern>
</servlet-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: