java flex 上传文件_使用Flex和java servlet上传文件
資源都是來自網上。本實例將展示使用Flex和java servlet上傳文件。
事前準備就是到http://commons.apache.org 下載common-fileupload-1.1.1.jar以及common-io-1.2.jar兩個包。
前臺Flex代碼:
Xml代碼 ?
import?flash.net.FileReference;
import?mx.controls.Alert;
import?mx.events.CloseEvent;
import?flash.events.*;
private?var?file:?FileReference;
private?function?init():?void{
Security.allowDomain("*");
file?=?new?FileReference();
file.addEventListener(ProgressEvent.PROGRESS,?onProgress);
file.addEventListener(Event.SELECT,?onSelect);
file.addEventListener(Event.COMPLETE,?completeHandle);
}
private?function?completeHandle(event:Event):void{
Alert.show("恭喜你,上傳成功");
}
private?function?upload():?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?onSelect(e:?Event):?void{
Alert.show("上傳?"?+?file.name?+?"?(共?"+Math.round(file.size)+"?字節)?",
"確認上傳",
Alert.YES|Alert.NO,
null,
proceedWithUpload);
}
private?function?onProgress(e:?ProgressEvent):?void{
lbProgress.text?=?"?已上傳?"?+?e.bytesLoaded
+?"?字節,共?"?+?e.bytesTotal?+?"?字節";
var?proc:?uint?=?e.bytesLoaded?/?e.bytesTotal?*?100;
bar.setProgress(proc,?100);
bar.label=?"當前進度:?"?+?"?"?+?proc?+?"%";
}
private?function?proceedWithUpload(e:?CloseEvent):?void{
if?(e.detail?==?Alert.YES){
var?request:?URLRequest?=?new?URLRequest("http://localhost:8080/FileUploaded/FileUploaded");
try?{
file.upload(request);
}?catch?(error:Error)?{
trace("上傳失敗");
}
}
}
]]>
minimum="0"visible="true"maximum="100"label="當前進度:?0%"
direction="right"mode="manual"width="200"/>
接下來寫的是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?crystal
*/
public?class?FileUploaded?extends?HttpServlet?{
/**
*?Processes?requests?for?both?HTTPGETandPOSTmethods.
*?@param?request?servlet?request
*?@param?response?servlet?response
*/
//?定義文件的上傳路徑
private?StringuploadPath="d:\\a\\";
//?限制文件的上傳大小
private?intmaxPostSize=100*?1024?*?1024;
public?FileUploaded()?{
super();
}
public?void?destroy()?{
super.destroy();
}
protected?void?processRequest(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
System.out.println("Access?!");
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
//保存文件到服務器中
DiskFileItemFactoryfactory=newDiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUploadupload=newServletFileUpload(factory);
upload.setSizeMax(maxPostSize);
try?{
ListfileItems=upload.parseRequest(request);
Iteratoriter=fileItems.iterator();
while?(iter.hasNext())?{
FileItemitem=?(FileItem)?iter.next();
if?(!item.isFormField())?{
Stringname=item.getName();
System.out.println(name);
try?{
item.write(new?File(uploadPath?+?name));
//?SaveFiles=newSaveFile();
//?s.saveFile(name);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
}?catch?(FileUploadException?e)?{
e.printStackTrace();
System.out.println(e.getMessage()?+?"結束");
}
}
//
/**
*?Handles?the?HTTPGETmethod.
*?@param?request?servlet?request
*?@param?response?servlet?response
*/
protected?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
processRequest(request,?response);
}
/**
*?Handles?the?HTTPPOSTmethod.
*?@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";
}
//
}
如果使得你的Servlet被訪問,你還需要在WEB-INF/web.xml 添加如下的xml語句:[在中]
FileUploaded
upload.FileUploaded
FileUploaded
/FileUploaded
效果圖:
總結
以上是生活随笔為你收集整理的java flex 上传文件_使用Flex和java servlet上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 实验报告模板_Java实验报告
- 下一篇: java 1.8 rpm_jdk1.8下