事先要在给工程添加两个库文件,一个是commons-fileupload-1.2.1,一个是commons-io-1.2
客户端只需要FileReference 或者是FileReferenceList这两个类就可以了
服务器上传代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import javax.servlet.ServletContext;
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;
public class FileUploadServlet extends HttpServlet
{
private String uploadPath = "D:\\upload\\";
private String skStr = "";
private int maxPostSize = 1000 * 1024 * 1024;
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException,
IOException
{
String filePathaa = this.getServletConfig().getServletContext().getRealPath("/");
res.setContentType("text/html;charset=UTF-8");
req.setCharacterEncoding("UTF-8");
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024*20);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(maxPostSize);
try
{
List fileItems = upload.parseRequest(req);
Iterator iter = fileItems.iterator();
while (iter.hasNext())
{
FileItem item = (FileItem) iter.next();
if (!item.isFormField())
{
String name = item.getName();
try
{
File skFile = new File(uploadPath + name);
if (skFile.exists())
{
skFile.delete();
item.write(new File(uploadPath + name));
}
else
{
item.write(new File(uploadPath + name));
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
} catch (FileUploadException e)
{
e.printStackTrace();
}
}
}
客户端代码(主要是as文件,通过<mx:script source=''>导入的mxml中)
import flash.events.Event;
import flash.net.FileReference;
import flash.net.URLRequest;
import mx.controls.Alert;
private var selectFile:FileReference ;
private function init():void
{
selectFile = new FileReference();
}
private function upLoadFiles():void
{
try
{
selectFile.browse();
selectFile.addEventListener(Event.SELECT, selectHandler1);
}
catch (error:Error)
{
Alert.show("文件选择出现错误,请选择正确的文件");
}
}
/** *//**
* 如果文件被选中,则执行该方法
* */
private function selectHandler1(event:Event):void
{
var request:URLRequest = new URLRequest("http://localhost:8080/upLoaderfile/FileUploadServlet");
selectFile.addEventListener(ProgressEvent.PROGRESS, progressHandler);
selectFile.addEventListener(Event.COMPLETE,UpLoadcompleteHandler);
try
{
selectFile.upload(request);
}
catch (error:Error)
{
Alert.show(error.message.toString());
}
}
private function UpLoadcompleteHandler(event:Event):void
{
var upLoadFiles:FileReference = FileReference(event.target);
var fileNames:String = upLoadFiles.name;
Alert.show('文件'+fileNames+'上传成功')
}
private function progressHandler(e:ProgressEvent):void
{
var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
trace( proc + "%");
}
这仅仅是服务器和客户端的代码要将二者联系起来需要在服务器写配置文件
就是在web.xml中添加如下代码
<servlet>
<servlet-name>FileUploadServlet</servlet-name>
<servlet-class>FileUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileUploadServlet</servlet-name>
<url-pattern>/FileUploadServlet</url-pattern>
</servlet-mapping>
最后部署工程
然后运行
分享到:
相关推荐
1、利用Flex作为上传文件界面,通过servlet地址连接服务器端 2、Servlet处理上传文件过程 3、通过配置文件web.xml传递参数 4、达到Flex和Servlet进行交互,上传文件
Flex+Java Servlet处理文件上传 关于上传文件
这是一个flex客户端选择文件然后上传的例子,会java的人看了就明白了
Flex4.6+java+servlet上传图片例子+图片上传预览
本JavaWeb工程用于研究Flex与Servlet之间数据的交互 本工程编码方式:UTF-8 欢迎下载
Flex+Java Servlet文件上传实例
FLEX调用Servlet连接数据库源码
范例使用supermap iclient for Flex客户端裁剪地图。
Flex+Java Servlet处理文件上传
采用了一个别人写的flex文件上传的组件,(都有源码) 这个例子中没有上传时的中文乱码问题,在struts下也能很工作的很好
flex客户端和服务端分页控件,后台使用java实现数据的传送,flex客户端调用服务端的webservices服务进行数据的展现~~ 内附myeclipse项目和flex项目·~ 分别导入可运行,注意端口的修改~
Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar
NULL 博文链接:https://zhousheng193.iteye.com/blog/907601
NULL 博文链接:https://morry.iteye.com/blog/387138
flex是妇科客户端编程的很好变现形式。
Flex和Servlet结合使用,文件上传、下载
本文简单介绍了Flex如何通过servlet连接数据库(Access)。使用的是给后台传递数据的方法。 本文开发使用的软件: Flex3-eclipse plugin Tomcat 6.0 Microsoft access 2003 Eclipse 3.3 各个软件的安装和...
在eclipse_的一个项目中同时开发j2ee模块和flex_客户端模块
解决Flex开发的swf服务器端最新版本,客户端IE浏览器需要手动设置,才可以显示服务器端最新的SWF版本问题