没有合适的资源?快使用搜索试试~ 我知道了~
javaWeb文件的上传下载
5星 · 超过95%的资源 需积分: 6 28 下载量 86 浏览量
2017-07-12
23:15:16
上传
评论
收藏 107KB DOC 举报
温馨提示
试读
16页
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现
资源推荐
资源详情
资源评论
javaWeb 文件的上传下载
在 Web 应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下
JavaWeb 中的文件上传和下载功能的实现。
对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果
直接使用 Servlet 获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一
般选择采用 apache 的开源工具 common-leupload 这个文件上传组件。这个
common-leupload 上传组件的 jar 包可以去 apache 官网上面下载,也可以在 struts
的 lib 文件夹下面找到,struts 上传的功能就是基于这个实现的。common-leupload 是
依赖于 common-io 这个包的,所以还需要下载这个包。
一、开发环境搭建
创建一个 FileuploadDemo 项目,加入 Apache 的 commons-
leupload 文件上传组件的相关 Jar 包,如下图所示:
二、文件上传实现
2.1、文件上传 jsp 页面
upload.jsp 页面的代码如下:
<%@ page language="java" import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title>My JSP 'upload.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my
page">
</head>
<body>
<form action="$
{pageContext.request.contextPath }/servlet/UploadServlet"
enctype="multipart/form-data"
method="post">
上传用户:<input type="text" name="username"><br/>
上传文件1:<input type="file" name="file1"><br/>
上传文件2:<input type="file" name="file2"><br/>
<input type="submit" value="
提交
">
</form>
</body>
</html>
2.2、处理文件上传的 Servlet
UploadServlet 代码实现如下:
package com.gx.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
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.disk.DiskFileItemFactory;
import
org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
//得到上传文件的保存目录,将上传的文件存放于web
应用upload目录下
String savePath =
this.getServletContext().getRealPath("/upload");
File file = new File(savePath);
//判断上传文件的保存目录是否存在
if (!file.exists() && !
file.isDirectory())
{
System.out.println(savePath+"目录不存在,
需要创建");
//创建目录
file.mkdir();
}
//消息提示
String message = "";
try{
//使用Apache文件上传组件处理文件上传步骤:
//1、创建一个DiskFileItemFactory工厂
DiskFileItemFactory factory = new
DiskFileItemFactory();
//2、创建一个文件上传解析器
ServletFileUpload upload = new
ServletFileUpload(factory);
//解决上传文件名的中文乱码
upload.setHeaderEncoding("UTF-8");
//3、判断提交上来的数据是否是上传表单的数据
if(!
ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}
//4、使用ServletFileUpload解析器解析上传
数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应
一个Form表单的输入项
List<FileItem> list =
upload.parseRequest(request);
for(FileItem item : list){
//如果fileitem中封装的是普通输入项的数
据
if(item.isFormField()){
String name =
item.getFieldName();
//
解决普通输入项的数据的中文乱码问
题
String value =
item.getString("UTF-8");
System.out.println(name + "="
+ value);
}else{//如果fileitem中封装的是上传文
件
//得到上传的文件名称,
String filename =
item.getName();
System.out.println(filename);
if(filename==null ||
filename.trim().equals("")){
continue;
}
//注意:不同的浏览器提交的文件名是
不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\
剩余15页未读,继续阅读
资源评论
- INO_ONI2017-07-14还行! 修改 修改 就可以用了
GIS子枫
- 粉丝: 3791
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功