加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex批量上传通过Servlet

发布时间:2020-12-15 04:13:45 所属栏目:百科 来源:网络整理
导读:1.Servlet代码 package com.fpt.servlet; imp ort java.io.File; imp ort java.io.IOException; imp ort java.io.PrintWriter; imp ort java.util.Iterator; imp ort java.util.List; imp ort javax.servlet.ServletException; imp ort javax.servlet.http.H

1.Servlet代码

package com.fpt.servlet;

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;


public class FileUploadServlet extends HttpServlet {

?// 定义文件的上传路径

?private String uploadPath = "f:/";

?// 限制文件的上传大小

?private int maxPostSize = 100 * 1024 * 1024;

?public FileUploadServlet() {
??super();
?}

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

?protected void processRequest(HttpServletRequest request,
???HttpServletResponse response) throws ServletException,IOException {
??System.out.println("Access !");
??// uploadPath=request.getSession().getServletContext().getRealPath("");
??System.out.println(uploadPath);
??response.setContentType("text/html;charset=UTF-8");
??PrintWriter out = response.getWriter();

??// 保存文件到服务器中

??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() + "结束");
??}
?}

?// <editor-fold defaultstate="collapsed"
?// desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

?protected void doGet(HttpServletRequest request,IOException {
??processRequest(request,response);
?}

?protected void doPost(HttpServletRequest request,response);
?}

?
?public String getServletInfo() {
??return "file upload";
?}

}
2.flex上传组件

<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"?? isPopUp="true"
??? layout="vertical" width="100%" minWidth="400" height="100%" minHeight="200"
??? title="上传页面" creationComplete="initCom()">
?
?<mx:Metadata>
??[Event(name="uploadComplete",type="flash.events.Event")]
??[Event(name="uploadProgress",type="flash.events.ProgressEvent")]
??[Event(name="uploadCancel",type="flash.events.Event")]
??[Event(name="uploadIOError",type="flash.events.IOErrorEvent")]
??[Event(name="uploadSecurityError",type="flash.events.SecurityErrorEvent")]
?</mx:Metadata>
?
?<mx:Script>
??<![CDATA[
???
???
???
???import mx.controls.*;
???import mx.managers.*;
???import mx.events.*;
???import flash.events.*;
???import flash.net.*;
???
???private var _strUploadUrl:String;
???private var _refAddFiles:FileReferenceList;???
???private var _refUploadFile:FileReference;
???private var _arrUploadFiles:Array;
???private var _numCurrentUpload:Number = 0;???????????
???
???// Set uploadUrl
???public function set uploadUrl(strUploadUrl:String):void {
????_strUploadUrl = strUploadUrl;
???}
???
???// Initalize
???private function initCom():void {
????_arrUploadFiles = new Array();???????????????
????enableUI();
????uploadCheck();
???}
???
???// Called to add file(s) for upload
???private function addFiles():void {
????_refAddFiles = new FileReferenceList();
????_refAddFiles.addEventListener(Event.SELECT,onSelectFile);
????_refAddFiles.browse();
???}
???
???// Called when a file is selected
???private function onSelectFile(event:Event):void {
????var arrFoundList:Array = new Array();
????// Get list of files from fileList,make list of files already on upload list
????for (var i:Number = 0; i < _arrUploadFiles.length; i++) {
?????for (var j:Number = 0; j < _refAddFiles.fileList.length; j++) {
??????if (_arrUploadFiles[i].name == _refAddFiles.fileList[j].name) {
???????arrFoundList.push(_refAddFiles.fileList[j].name);
???????_refAddFiles.fileList.splice(j,1);
???????j--;
??????}
?????}
????}
????if (_refAddFiles.fileList.length >= 1) {??????????

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读