<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flex 基于Http方式上傳圖片(轉(zhuǎn))

    首先下載 commons-fileupload-1.2.1.jar和commons-io-1.1.jar 
    flex端代碼: 


    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                    layout
    ="absolute"
                    xmlns
    ="*"
                    creationComplete
    ="init();">
        
    <mx:Script>
            
    <![CDATA[
                
    import flash.events.*;

                
    import mx.controls.Alert;
                
    import mx.events.CloseEvent;
                
    import mx.managers.CursorManager;

                
    private var file:FileReference;
                
    private var byteArray:ByteArray;
                
    private var bitmapData:BitmapData;
                
    private var loader:Loader=new Loader();

                
    private function init():void
                
    {
                    Security.allowDomain(
    "*");
                    file
    =new FileReference();
                    file.addEventListener(Event.COMPLETE, fileReferenceCompleteHandler);
                    file.addEventListener(Event.SELECT, fileReferenceSelectHandler);
                }


                
    //選擇上傳的圖片
                private function choose():void
                
    {
                    var imageTypes:FileFilter
    =new FileFilter("Images (*.jpg, *.jpeg, *.png)""*.jpg;*.jpeg;*.png");
                    var allTypes:Array
    =new Array(imageTypes);
                    file.browse(allTypes);
    //                file.browse();
                }


                
    private function toUpload():void
                
    {
                    
    if (bitmapData == null)
                    
    {
                        Alert.show(
    "請您先選擇要上傳的圖片");
                    }

                    
    else
                    
    {
                        Alert.show(
    "上傳 " + file.name + " (共 " + Math.round(file.size) + " 字節(jié))?""確認(rèn)上傳", Alert.YES | Alert.NO, null, proceedWithUpload);
                    }

                }


                
    //監(jiān)聽文件上傳狀態(tài)
                private function onProgress(e:ProgressEvent):void
                
    {
                    lbProgress.text
    =" 已上傳 " + e.bytesLoaded + " 字節(jié),共 " + e.bytesTotal + " 字節(jié)";
                    var proc:uint
    =e.bytesLoaded / e.bytesTotal * 100;
                    bar.setProgress(proc, 
    100);
                    bar.label
    ="當(dāng)前進(jìn)度: " + " " + proc + "%";
                    
    if (e.bytesLoaded == e.bytesTotal)
                    
    {
                        CursorManager.removeBusyCursor();
                    }

                }


                
    //上傳圖片到服務(wù)器
                private function proceedWithUpload(e:CloseEvent):void
                
    {
                    
    if (e.detail == Alert.YES)
                    
    {
                        
    //進(jìn)度監(jiān)聽
                        file.addEventListener(ProgressEvent.PROGRESS, onProgress);
                        var request:URLRequest
    =new URLRequest("http://localhost:8080/FileUploaded");
                        
    //設(shè)置鼠標(biāo)忙狀態(tài)
                        CursorManager.setBusyCursor();
                        
    try
                        
    {
                            file.upload(request);
                            Alert.show(
    "恭喜你,上傳成功");
                        }

                        
    catch (error:Error)
                        
    {
                            Alert.show(
    "上傳失敗");
                            trace(
    "上傳失敗");
                        }


                    }

                }


                
    //上傳完成調(diào)用
                private function completeHandle(event:Event):void
                
    {
                    Alert.show(
    "恭喜你,上傳成功");
                }


                
    //載入本地圖片
                private function fileReferenceCompleteHandler(e:Event):void
                
    {
                    byteArray
    =file.data;
                    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderCompleteHandler);
                    loader.loadBytes(byteArray);
                }


                
    //圖片載入完成顯示在預(yù)覽框中
                private function loaderCompleteHandler(e:Event):void
                
    {
                    var bitmap:Bitmap
    =Bitmap(loader.content);
                    bitmapData
    =bitmap.bitmapData;
                    img.source
    =bitmap;
                }


                
    //選擇文件動作監(jiān)聽
                private function fileReferenceSelectHandler(e:Event):void
                
    {
                    file.removeEventListener(ProgressEvent.PROGRESS, onProgress);
                    file.load();
                }

            ]]
    >
        
    </mx: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"
                                themeColor
    ="#F20D7A"
                                minimum
    ="0"
                                visible
    ="true"
                                maximum
    ="100"
                                label
    ="當(dāng)前進(jìn)度: 0%"
                                direction
    ="right"
                                mode
    ="manual"
                                width
    ="200"/>
                
    <mx:Button label="上傳文件"
                           click
    ="toUpload();"/>
            
    </mx:VBox>
            
    <mx:Panel width="469"
                      height
    ="392"
                      verticalGap
    ="0"
                      horizontalAlign
    ="center"
                      verticalAlign
    ="middle"
                      x
    ="408"
                      y
    ="129"
                      layout
    ="absolute">
                
    <mx:Button label="選擇文件"
                           click
    ="choose();"
                           x
    ="178"
                           y
    ="9"/>
                
    <mx:Image id="img"
                          width
    ="400"
                          height
    ="300"
                          x
    ="36"
                          y
    ="44"/>

            
    </mx:Panel>

        
    </mx:Canvas>
    </mx:Application>

    java servlet端代碼 

    package upload;

    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 lqw
     
    */

    public class FileUploaded extends HttpServlet {

        
    // 定義文件的上傳路徑
        private String uploadPath = "d:\\a\\";

        
    // 限制文件的上傳大小
        private int maxPostSize = 100 * 1024 * 1024;

        
    public FileUploaded() {
            
    super();
        }


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


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

            
    // 保存文件到服務(wù)器中

            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() 
    + "結(jié)束");
            }

        }


        
    protected void doGet(HttpServletRequest request,
                HttpServletResponse response) 
    throws ServletException, IOException {
            processRequest(request, response);
        }


        
    protected void doPost(HttpServletRequest request,
                HttpServletResponse response) 
    throws ServletException, IOException {
            processRequest(request, response);
        }


        
    public String getServletInfo() {
            
    return "Short description";
        }


    }


    web.xml 文件內(nèi)容:
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
        
         
    <servlet>
            
    <servlet-name>FileUploaded</servlet-name>
            
    <servlet-class>upload.FileUploaded</servlet-class>
        
    </servlet>

        
    <servlet-mapping>
            
    <servlet-name>FileUploaded</servlet-name>
            
    <url-pattern>/FileUploaded</url-pattern>
        
    </servlet-mapping>
        
        
    <session-config>
            
    <session-timeout>35</session-timeout>
        
    </session-config>
        
    <mime-mapping>
            
    <extension>html</extension>
            
    <mime-type>text/html</mime-type>
        
    </mime-mapping>
        
    <mime-mapping>
            
    <extension>txt</extension>
            
    <mime-type>text/plain</mime-type>
        
    </mime-mapping>
        
    </web-app>

    FLEX端如果出現(xiàn)安全沙箱的問題:是由于在tomcat環(huán)境下沒有聲明應(yīng)用程序能被外部訪問. 

    在程序的部署文件夾下添加crossdomain.xml文件.文件內(nèi)容為: 
    <?xml version="1.0"?> 

    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 

    <cross-domain-policy> 

    <allow-access-from domain="*" secure="false"/> 
    <allow-http-request-headers-from domain="*" headers="*" secure="false"/> 

    </cross-domain-policy>
    http://blog.163.com/geliang0021@126/blog/static/32322329201111295559423/
    http://wenku.baidu.com/view/9b1fceb769dc5022aaea00e9.html

    posted on 2012-09-11 22:36 youngturk 閱讀(4109) 評論(0)  編輯  收藏 所屬分類: Java基礎(chǔ) 、Flex DEV 、servlet

    <2012年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    this year :
    1 jQuery
    2 freemarker
    3 框架結(jié)構(gòu)
    4 口語英語

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    EJB學(xué)習(xí)

    Flex學(xué)習(xí)

    learn English

    oracle

    spring MVC web service

    SQL

    Struts

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久高潮毛片免费全部播放| 全部免费国产潢色一级| 美腿丝袜亚洲综合| 亚洲AV成人一区二区三区在线看| 99精品视频免费| 日本免费网站观看| 亚洲狠狠狠一区二区三区| 在线播放国产不卡免费视频| 免费看国产成年无码AV片| 亚洲av网址在线观看| 免费国产黄网站在线看| 一个人看www在线高清免费看 | 亚洲精品成人网站在线播放| 午夜在线免费视频| 成人免费无毒在线观看网站| 少妇中文字幕乱码亚洲影视| 一进一出60分钟免费视频| 美女被免费视频网站a国产| 亚洲国产日韩女人aaaaaa毛片在线| 中文字幕无线码免费人妻| 四虎免费永久在线播放| 亚洲一久久久久久久久| **aaaaa毛片免费同男同女| 久久亚洲精品视频| 亚洲精品视频免费观看| 免费一级毛片一级毛片aa| 亚洲日本中文字幕天天更新| 亚欧人成精品免费观看| 亚洲嫩草影院久久精品| 一个人免费视频在线观看www| 亚洲国产精品综合久久网络| 色偷偷亚洲男人天堂| 午夜爱爱免费视频| 亚洲精品乱码久久久久久V | 69av免费视频| 亚洲AV无码乱码国产麻豆| 久久精品无码免费不卡| 亚洲综合色区在线观看| 无套内谢孕妇毛片免费看看| 国产zzjjzzjj视频全免费| 亚洲AV噜噜一区二区三区|