资源都是来自网上。本实例将展示使用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上传文件相关推荐

  1. java 写tb级文件_三管齐下!TB 级文件的上传性能瞬间被优化 100 倍!

    作者 | 中华石杉 责编 | 伍杏玲 本文经授权转载石杉的架构笔记(ID:shishan100) 这篇文章我们来看看,世界上最优秀的分布式文件系统HDFS,是如何对超大文件的上传做性能优化的? 首先, ...

  2. maven 打包时缺少文件_(三)Java资源文件和路径相关扫盲

    本来打算接着上文直接写登录功能的,顺便介绍下SpringSecurity,但是SpringSecurity和Spring以及SpirngBoot是如何衔接的又是个较为复杂的事情.看了下SpringBo ...

  3. java编写布局文件_鸿蒙OS利用JAVA编写的布局实践练习

    鸿蒙OS利用JAVA编写的布局实践练习 鸿蒙OS利用JAVA编写的布局实践练习 目录 JAVA UI框架 利用JAVA代码实现一个简单的布局 利用xml实现上述布局 JAVA UI框架 ??应用的Ab ...

  4. java读取csv文件_使用扫描仪读取Java中的CSV文件

    java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...

  5. iphone和mac互传文件_mac和windows怎么互传文件_让mac和windows电脑互传文件的方法-系统城...

    由于工作需要要用到两台电脑,一台是安装windows电脑,一个则是使用macbook系统.偶尔会需要在两台电脑之间互传文件的需求,虽说QQ和微信可以实现传输,但是如果文件太大还得压缩,显得很麻烦.有什 ...

  6. java 序列化 文件_一种恢复Java序列化文件数据的方法与流程

    本发明涉及信息安全技术领域,特别涉及一种恢复Java序列化文件数据的方法. 背景技术: 在数据解析恢复领域经常会遇到序列化文件的解析.Java序列化是Java 自身提供的一种数据序列化方式,它允许开发 ...

  7. Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...

    springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...

  8. Java调用系统解压_记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件

    前言 最近在和一个档案管理系统对接,需要把我方系统文件压缩成zip格式,通过ftp的方式upload到指定的服务器上,考虑到Java的平台无关性,一开始便使用Java自带的类库java.util.zi ...

  9. java 删除过期文件_定时脚本: 删除HDFS中的过期文件

    1. 基本原理: 通过hadoop fs -ls *命令获取相关文件或目录的修改时间,然后与设定的过期时间进行比较,之后执行删除操作即可 2. 相关代码: #!/bin/bash source ~/. ...

最新文章

  1. 重磅 | 王劲被百度起诉后首露面:称打印机电脑已报废,赔了318块钱,没接到法院传票
  2. supervisord+supervisorclusterctl+supervisord-monit
  3. 织梦channel标签currentstyle样式无效不起作用
  4. Task和async/await详解
  5. PHP完整的一次请求过程:请求 dns nginx监听 转发给php-fpm worker处理 返给nginx
  6. python返回列表中出现次数最多的数
  7. MySQL数据存储目录查找
  8. 个人永久性免费-Excel催化剂功能第119波-一大波虚构数据,支持多国语言版本
  9. linux之让终端支持C++11/14编译cpp文件
  10. Taro+react开发(82):设置默认属性
  11. 个人作业-软件产品案例分析
  12. mysql技术任务_MySQL基础教程(13)MySQL计划任务
  13. Xbox360手柄驱动xbcd+
  14. TASKCTL单机/分布式部署,启动服务/代理节点监听
  15. 宝塔实测-电商ERP进销存系统源码
  16. android 获取视频码率和缓存大小,android - 使用MediaCodec和MediaMuxer录制视频,但比特率和帧率不正确 - 堆栈内存溢出...
  17. Amazon S3对象储存(以图片为例)
  18. 一元二次方程abc决定什么_专题—二次函数一元二次方程-abc意义.pptx
  19. 二维码生成器在线制作带logo二维码
  20. 辰视智能主办的第二届智能制造高峰论坛昨日在深圆满举行

热门文章

  1. JAVA 将图片转换为Base64编码
  2. Redmonk 发布 Java 框架流行度调研结果
  3. 几何画板有没有计算器
  4. 如何恢复默认域策略和默认域控制器策略
  5. Fedora再次安装手记--很爽的Wine工具
  6. B2B专线宽带业务成为企业上云新战场——Vecloud
  7. vue cli3.3 以上版本配置vue.config.js 及反向代理操作解决跨域操作
  8. 28-Interview-面试
  9. WPF入门教程系列十九——ListView示例(一)
  10. 在sublime-text中设置浏览器预览