日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤

發布時間:2023/12/19 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文使用一個 demo 來演示如何使用 Flex 和 Java servlets 上傳一個任意類型的本地文件到 RED5 服務器。使用的是 Flex 的 FileReference 接口,該接口可以對遠程服務器上的文件進行上傳、下載。FileReference 類提供了一個對話框接口和一個 upload 方法,通過該對話框,選擇本地文件,而 upload 方法將會調用遠程服務器端的 PHP,ASP 或者 Java 代碼來進行上傳。 ? ? ? ? 首先創建一個 Flex3 應用程序,該程序獲得本地文件,并調用 RED5 服務器 "http://localhost:5080/Red5FileUploadProj/fileupload" 的 servlet。

UploadToRed5Proj.mxml 源代碼如下:

[Bindable]privatevar fileReference:FileReference;

[Bindable]private var fileSelected:Boolean = false;

[Bindable]private var serverUrl:String = "http://localhost:5080/Red5FileUploadProj/fileupload";private var statusArray:Array = newArray();

[Bindable]private var statusArrayCollection:ArrayCollection = newArrayCollection();private function doInit():void{

fileReference= newFileReference();

fileReference.addEventListener(Event.SELECT, onFileSelect);

fileReference.addEventListener(Event.COMPLETE, onUploadComplete);

fileReference.addEventListener(ProgressEvent.PROGRESS,onUploadProgress);

fileReference.addEventListener(IOErrorEvent.IO_ERROR, onUploadError);

fileReference.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadError);

}private function browseFile(event:MouseEvent):void{

fileReference.browse();

}private function onFileSelect(event:Event):void{

fileSelected= true;

fileTxt.text=fileReference.name;

statusArray.push({status:"Ready to upload "+fileTxt.text});

statusArrayCollection= newArrayCollection(statusArray);

}private function uploadFile(event:MouseEvent):void{if (!fileSelected || (urlTxt.text.length == 0))

{

Alert.show("Select a file and Enter a URL");return;

}

var urlRequest:URLRequest= newURLRequest(urlTxt.text);

fileReference.upload(urlRequest);

}private function onUploadProgress(event:ProgressEvent):void{

statusArray.push({status:"In progress.."+((event.bytesLoaded * 100) / event.bytesTotal).toString()+"%"});

statusArrayCollection= newArrayCollection(statusArray);

}private function onUploadComplete(event:Event):void{

statusArray.push({status:"Uploaded successfully!"});

statusArrayCollection= newArrayCollection(statusArray);

}private function onUploadError(event:Event):void{if(event is IOErrorEvent)

{

statusArray.push({status:"IO Error: "+(event as IOErrorEvent).text.toString()});

statusArrayCollection= newArrayCollection(statusArray);

}else if(event is SecurityErrorEvent)

{

statusArray.push({status:"Security Error: "+(event as IOErrorEvent).text.toString()});

statusArrayCollection= newArrayCollection(statusArray);

}

}

]]>

服務器端的 Java Servlet 代碼使用一個 Apache 的第三方類庫 Commons FileUpload 包,它可以使我們的 servlets 或者 web 應用程序具有上傳的功能。這個包可以從這里進行下載:http://commons.apache.org/fileupload/。Commons FileUpload 包內部使用了 Apache Commons IO 包,所以我們把這個包也下下來:http://commons.apache.org/io/。在本文的例子中,我使用的是 commons-fileupload-1.2.1.jar 和 commons-io-1.4.jar。將 commons-fileupload-1.2.1.jar、commons-io-1.4.jar 和 servlet-api.jar 復制到 RED5 項目的 /WEB-INF/lib 目錄下。其中 servlet-api.jar 可以去 tomcat 安裝目錄下的 lib 文件夾下去找。

然后,在我們的 RED5 應用程序的 web.xml 文件夾下添加如下內容:

fileupload

com.mycompany.ind.red5.FileUploadServlet

uploadFolder

uploads

fileupload

/fileupload

如果你熟悉 JEE,你會發現和 tomcat 的 web.xml 配置基本一致:servlet-mapping 元素將匹配 /fileupload 的 url 到名為 "fileupload" 的 servlet,servlet 元素則指示出該 servlet 具體實現類;上傳的文件夾名作為 servlet 的初始參數也在這里進行定義,這里定義為 "uploads",所以應該在我們的 RED5 項目根目錄下創建一個同名文件夾。

最后,寫具體實現上傳的 FileUploadServlet 類:

packagecom.mycompany.ind.red5;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importjava.io.IOException;importjava.util.Iterator;importjava.util.List;importjava.io.FileOutputStream;importjava.io.FileNotFoundException;public class FileUploadServlet extendsHttpServlet

{

@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException

{super.doGet(request, response);

doPost(request,response);

}

@Overridepublic voiddoPost( HttpServletRequest request, HttpServletResponse response )

{/*** Create a factory for new disk-based file items*/FileItemFactory factory= newDiskFileItemFactory();/*** Create a new file upload handler*/ServletFileUpload upload= newServletFileUpload(factory);try{/*** Parsing input request*/List items=upload.parseRequest(request);/*** Process the uploaded items*/Iterator iter=items.iterator();while(iter.hasNext())

{

FileItem item=(FileItem) iter.next();/*** handling a normal form-field*/

if(item.isFormField())

{

System.out.println("A form field");

}else{/*** handling file uploads*/System.out.println("Not a form field");

String uploadFileName=item.getName();byte[] data =item.get();/*** Gets directory to which the file is to be uploaded*/String uploadFolder= getServletConfig().getInitParameter("uploadFolder");

String fileFolderName= getServletContext().getRealPath(uploadFolder + "\\"+uploadFileName);try{

FileOutputStream fileOutSt= newFileOutputStream(fileFolderName);try{

fileOutSt.write(data);

fileOutSt.close();

}catch(IOException exception)

{

exception.printStackTrace();

}

}catch(FileNotFoundException exception)

{

exception.printStackTrace();

}

}

}

}catch(FileUploadException exception)

{

exception.printStackTrace();

}

}

}

總結

以上是生活随笔為你收集整理的flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。