flex 图片上传

来源:互联网 发布:土鳖不土战斗力五 知乎 编辑:程序博客网 时间:2024/04/30 02:16

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>

 

原创粉丝点击