java中多文件上传
- 格式:doc
- 大小:18.50 KB
- 文档页数:2
1.页面的form表单首先必须是method="post"提交, 其次: enctype="multipart/form-data"
1.页面的form表单首先必须是method="post"提交, 其次: enctype="multipart/form-data"
java⽂件实现⽂件的上传和下载
简介
⽂件上传和下载是java web中常见的操作,⽂件上传主要是将⽂件通过IO流传放到服务器的某⼀个特定的⽂件夹下,⽽⽂件下载则是与⽂件上传相反,将⽂件从服务器的特定的
⽂件夹下的⽂件通过IO流下载到本地。
对于⽂件上传,浏览器在上传的过程中是将⽂件以流的形式提交到服务器端的,如果直接使⽤Servlet获取上传⽂件的输⼊流然后再解析⾥⾯的请求参数是⽐较⿇烦,所以⼀般选
择采⽤apache的开源⼯具common-fileupload这个⽂件上传组件。这个common-fileupload上传组件的jar包可以去apache官⽹上⾯下载,也可以在struts的lib⽂件夹下⾯找
到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。
· ⽂件上传
1、⽂件上传页⾯和消息提⽰页⾯
upload.jsp页⾯的代码如下:
在⽂件上传的页⾯要⽤enctype="multipart/form-data" method="post"来表⽰进⾏⽂件上传。
2、处理⽂件上传的Servlet<%@ page language="java" pageEncoding="UTF-8"%>
⽂件上传
上传⽂件1:
上传⽂件2:
public class UploadHandleServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//得到上传⽂件的保存⽬录,将上传的⽂件存放于WEB-INF⽬录下,不允许外界直接访问,保证上传⽂件的安全
龙源期刊网
基于java的多文件上传功能实现
作者:刘学
来源:《硅谷》2011年第20期
摘 要: 文件上传是web应用中常见的需求,而Servlet技术的未能提供对文件上传的支持,介绍处理上传文件的一些技术方法,然后对上传文件的信息格式进行介绍,最后结合实际,利用Apache的一个组件commons-fileupload实现文件上传操作。
关键词: 文件上传;java;fileupload
中图分类号:TP393.09 文献标识码:A 文章编号:1671-7597(2011)1020139-01
0 前言
随着Intemet的发展,在网络上经常会遇文件的情况,作为Web应用开发的主流技术,Servle/jsp并没有提供对文件上传支持。对于这类操作,我都是使用组件完成的。同时,由于这类操作存在普遍性,所以很多优秀的组件供我们选择。本文通校园基建信息管理系统中文件上传下载的例子,介绍了java语言中的文件处理类的方法,结合项目对上传的数据流的信息结构进行了详细的剖析,进而介绍了上传文件所使用的组件的原理,并具体实现一次上传任意数量的文件。
1 上传界面
为了向服务器提交文件,需要使用一个html表单。表单的method必须为post,enctype必须是multipart/form-data,当用户单击上传进行提交时,文件标题和内容就会封装到Http请求的消息体重,通过网络发送到服务器端。为了实现多文件的上传,还使用了javascript技术动态的为表单添加输入框,通过函数addUploadButton()来实现。
ityid=<%=entityid%>"
enctype="multipart/form-data">
….
utton()" style="height:20px;"/> 龙源期刊网
PHP⽂件上传-通过类实现单⽂件或多⽂件上传本案例有三个⽂件,⽬录结构如下图:
核⼼⽂件上传类uploads.class.php (既能上传单⽂件⼜能上传多⽂件),程序不⾜之处还请多多指教!
uploads.class.php代码如下:
class uploads{
protected $fileName;
protected $maxSize;
protected $allowMime;
protected $allowExt;
protected $uploadPath;
protected $imgFlag;
protected $fileInfo;
protected $error;
protected $ext;
protected $uniName;
protected $destination;
protected $file;
protected $files;
protected $i;
protected $key;
protected $value;
protected $res;
protected $uploadFiles;
public function __construct($uploadPath='./uploads',$imgFlag=true,$maxSize=5242880,$allowExt=array('jpeg','jpg','png','gif'),$allowMime=array('image/jpeg','image/png','image/gif')){
//$this->fileName=$fileName;
$this->maxSize=$maxSize;
$this->allowMime=$allowMime;
$this->allowExt=$allowExt;
$this->uploadPath=$uploadPath;
$this->imgFlag=$imgFlag;
文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。
common-fileupload组件是apache的一个开源项目之一,可以从/commons/fileupload/ (/commons/fileupload/)下载。
用该组件可实现一次上传一个或多个文件,并可限制文件大小。
代码
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps你的webappWEB-INFlib下,目录不存在请自建目录。
新建一个servlet: Upload.java用于文件上传:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import mons.fileupload.*;
public class Upload extends HttpServlet {
private String uploadPath = "C:upload"; // 上传文件的目录
private String tempPath = "C:uploadtmp"; // 临时文件目录
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
}
}
在doPost()方法中,当servlet收到浏览器发出的Post请求后,实现文件上传。以下是示例代码:
public void doPost(HttpServletRequest request,