使用工具实现文件上传

开发步骤:

先给大家介绍了要用到的两个类:

(1)DIskFileItemFactory对象:用于设置缓存大小和缓存目录

(2)ServletFileUpload对象:来解析文件

1】导两个jar包 commons-fileupload-1.2.2.jar   右键Build Path  -->  add path
       commons-io-2.0.1.jar     右键Build Path  -->  add path

  在E盘下新建一个文件夹为TestData,在文件夹中新建两个文件夹:FileTemp该文件夹存放缓存文件,server该文件夹存放服务器发过来的文件;若上传的文件大小大于自己设置的缓存大小,则进入缓存文件夹FileTemp,否则进入server文件夹。

2】先写好load.html代码,代码如下:

<!DOCTYPE html>
<meta charset="utf-8"/>
<html>
  <head>
    <title>上传文件</title>

</head> 
  <body>

             <!--  enctype="multipart/form-data"为表单提交内容的类型 -->
    <form action="/October1003/loadsingle" method="post" enctype="multipart/form-data">
    <input type = "file" name = "filename" ><br>
    <input type="submit" value="上传">
    </form>
  </body>
</html>

3】新建一个名为 “ LoadServlet ” 的Servlet,该Servlet的url为load ,代码如下:

package com.fileload;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
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;
import org.apache.commons.io.FileUtils;

public class LoadServlet  extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {

  request.setCharacterEncoding("utf-8");
  response.setContentType("text/html;charset=utf-8");
  //使用工具进行文件上传
  //1 DiskFileItemFactory 设置缓存大小和缓存目录
  DiskFileItemFactory factory = new DiskFileItemFactory(10*1024,new File("E://TestData/FileTemp"));
  //2 ServletFileUpload  解析文件
  ServletFileUpload upload = new ServletFileUpload(factory);
  //3 设置文件头的乱码问题
  upload.setHeaderEncoding("utf-8");
  //4 解析文件
  try {
   List<FileItem> list =  upload.parseRequest(request);  
   if(list != null){
    //获取第一个文件
    FileItem item = list.get(0);
    //获取文件信息
    String name = item.getName();
    String type = item.getContentType();
    long size = item.getSize();
    //获取文件内容 不包含其他
    InputStream in = item.getInputStream();
    //把文件传到电脑硬盘上
    FileUtils.copyInputStreamToFile(in,new File("E://TestData/server"+name));

 //文件上传成功后 把临时文件删除
    item.delete();
    
   }
  } catch (FileUploadException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

doGet(request, response);
 }

}

4】部署项目,开启服务器

在浏览器中访问:1)首先访问load.html   访问地址为:http://localhost:8080/包名/load.html

        2)点击选择文件,然后上传

       3)点击上传后,网页会跳转到地址为http://localhost:8080/包名/load (load为url的servlet)

       4)进入E盘目录下的TestData中查看是否上传成功。

       

原文地址:https://www.cnblogs.com/xsy20181001/p/9740955.html

时间: 2024-11-08 22:51:57

使用工具实现文件上传的相关文章

Java+Selenium——AutoIt工具处理文件上传

参考:https://blog.csdn.net/u011541946/article/details/74359517 参考:https://blog.csdn.net/linxi9322/article/details/78789452 关于文件上传,这边介绍一个第三方工具,叫AutoIt,简单来说,这个是一个能支持桌面GUI自动化的工具,它支持脚本语言编写.这里,我们用AutoIt来做文件上传的演示.在Selenium脚本中如果需要AutoIt来协助这个文件上传功能,大概步骤是这样的: 1

Web---文件上传-用apache的工具处理、打散目录、简单文件上传进度

我们需要先准备好2个apache的类: 上一个博客文章只讲了最简单的入门,现在来开始慢慢加深. 先过渡一下:只上传一个file项 index.jsp: <h2>用apache的工具处理文件上传</h2> <!-- 先过渡一下:只上传一个file项 --> <form action="<%= request.getContextPath() %>/upload" method="post" enctype=&quo

Android Day05-网络编程之文件上传

Android文件上传实现 分析:利用抓包工具查看文件上传发现,文件上传的请求体十分的复杂,根本难以用 HttpURLConnection.HttpClient来实现.但是用AsyncHttpClient就能很轻易的实现了,只要 在RequestParams对象里面添加一对键值对,值存储文件的路径即可上传了. AsyncHttpClient文件上传源代码:

【SSH网上商城项目实战13】Struts2实现文件上传功能

上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细解说.为此,这篇文章详细介绍一下Struts2实现文件上传的功能. 1. 封装文件信息 我们首先得有一个Model来封装文件的信息,这个Model里需要有三个属性:文件.文件类型和文件名.针对我们要传的图片,我们新建一个Model如下: public class FileImage { private File file; private String contentType; private String fi

【iOS工具】快速上传ipa文件到iTunes Connect

通常打包的ipa文件上传到App Store审核,要用到xcode或者Application Loader上传 只能在mac苹果机上传 这里分享的这个ipa上传辅助工具Appuploader在Windows.Linux或Mac系统都能上传.跨平台开发没有Mac苹果机的iOS上架非常实用. 亲测20M的ipa包,一分多钟就上传成功了.非常快. Appuploader还可以在辅助申请iOS证书.同样可以在Windows.Linux或Mac系统中申请,不需要Mac钥匙串助手生成csr文件. Appup

PHP 图片上传工具类(支持多文件上传)

====================ImageUploadTool======================== <?php class ImageUploadTool { private $file; //文件信息 private $fileList; //文件列表 private $inputName; //标签名称 private $uploadPath; //上传路径 private $fileMaxSize; //最大尺寸 private $uploadFiles; //上传文件

文件上传工具swfupload[转]

转至:http://zhangqgc.iteye.com/blog/906419 文件上传工具swfupload 示例: 1.JavaScript设置SWFUpload部分(与官方例子类似): var upload; window.onload = function() { upload = new SWFUpload({ // 处理文件上传的url upload_url: "${pageContext.request.contextPath}/swfupload/example.jsp?upl

验证码确保php无输出、sql语句的封装性、文件上传的工具类【这三个重点工具类实现】

1.php代码在引入中不会进行结束或者确保结束之后没有空格,来保证php在被包含中没有被输出[防止header和session_start()对输出的控制]实质上,需要注意的就是,要不就进行输出缓存控制以及php开始标签前没有空格 验证码这个功能需要header和session两个功能[尤其需要注意输出的问题] [总结:防止php代码中带着一些输出的问题](1)在php标签中开始<?php 前顶格(2)php结束符要不不写,写了就不要在结束之后还有换行[防止该文件被包含之后提前出线输出](3)或

spring mvc 文件上传工具类

虽然文件上传在框架中,已经不是什么困难的事情了,但自己还是开发了一个文件上传工具类,是基于springmvc文件上传的. 工具类只需要传入需要的两个参数,就可以上传到任何想要上传的路径: 参数1:HttpServletRequest request 参数2:String storePath   //文件存储相对路径 ,例如:"/upload","/image","/local/file" 返回值:上传到服务器的相对路径 一:代码实现 import