Flex和Servlet结合上传文件


1、准备工作

(1)下载文件上传的组件,commons-fileupload-1.3.1.jar

(2)下载文件输入输出jar,commons-io-2.4.jar

(3)有关servlet的jar包,servlet-api.jar


2、正式开发

(1)新建一个web项目project,FlexFileUpload

(2)在src新建一个上传文件的servlet

FlexFileUploadServlet.java:

package com.you.upload.servlet;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FlexFileUploadServlet extends HttpServlet 
{
	/**
	 * @Fields serialVersionUID:序列化
	 */
	private static final long serialVersionUID = -6839362803884547766L;

	/**
	 * Constructor of the object.
	 */
	public FlexFileUploadServlet() 
	{
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() 
	{
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		super.doGet(request, response);
		doPost(request, response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to
	 * post.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	@SuppressWarnings("rawtypes")
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		/**
		 * 防止中文乱码
		 */
		response.setContentType("text/html;charset=gb2312");
		/**
		 * 设置编码格式
		 */
		response.setCharacterEncoding("utf-8");
		/**
		 * 创建一个工厂类
		 */
		FileItemFactory factory = new DiskFileItemFactory();
		/**
		 * 上传对象
		 */
		ServletFileUpload upload = new ServletFileUpload(factory);
		try {
			List items = upload.parseRequest(request);
			Iterator it = items.iterator();
			while (it.hasNext()) 
			{
				FileItem item = (FileItem) it.next();
				/**
				 * 推断是表单域
				 */
				if (item.isFormField()) 
				{
					System.out.println("一个表单域");
				} 
				else 
				{
					/**
					 * 处理文件上传
					 */
					System.out.println("不是一个表单域");
					String fileName = item.getName();
					byte[] data = item.get();
					/**
					 * 获取文件上传路径
					 */
					String file = getServletConfig().getInitParameter("file");
					String fileFolderName = getServletContext().getRealPath(file + "\\" + fileName);
					try {
						FileOutputStream fileOutSt = new FileOutputStream(fileFolderName);
						try 
						{
							fileOutSt.write(data);
							fileOutSt.close();
						} 
						catch (IOException exception) 
						{
							exception.printStackTrace();
						}
					} 
					catch (FileNotFoundException exception) 
					{
						exception.printStackTrace();
					}
				}
			}
		} 
		catch (FileUploadException exception) 
		{
			exception.printStackTrace();
		}
	}

	/**
	 * Initialization of the servlet. <br>
	 * 
	 * @throws ServletException
	 *             if an error occurs
	 */
	public void init() throws ServletException 
	{
		// Put your code here
	}

}
(3)配置web.xml


(4)打开Flash Builder,新建Flex项目

FileUpload.mxml:


3、执行结果

(1)初始化时

Flex和Servlet结合上传文件

(2)上传文件

Flex和Servlet结合上传文件


(3)上传文件之前serverfile目录

Flex和Servlet结合上传文件


(4)上传文件之后serverfile目录

Flex和Servlet结合上传文件


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
  • 2022-02-25
  • 2021-06-01
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-14
  • 2021-11-19
  • 2021-05-21
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案