您的位置:首页 > 编程语言 > Java开发

JavaServlet实现文件上传

2016-07-24 20:52 381 查看
第一部分 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Servlet3.0文件上传应用示例</title>

</head>

<body>

<form action="upFile" method="post" enctype="multipart/form-data">

<table>

<tr>

<td>

选择文件

</td>

<td>

<input type="file" name="file">

</td>

</tr>

<tr>

<td>

描述

</td>

<td>

<input type="text" name ="description">

</td>

</tr>

<tr>

<td colspan="2">

<input type="submit" value="提交" >   

<input type="reset" value="重置">

</td>

</tr>

</table>

</form>

</body>

</html>

第二部分 FileUploadServlet.java
package com.web.UpFile;

import java.io.File;

import java.io.IOException;

import java.util.UUID;

import javax.servlet.ServletException;

import javax.servlet.annotation.MultipartConfig;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.Part;

@WebServlet(name="upFile",urlPatterns={"/upFile"})

@MultipartConfig(maxFileSize=-1,maxRequestSize=-1)

public class FileUploadServlet extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException{

doPost(req,resp);

}

public void doPost(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException{

//获取请求参数值

Part part = req.getPart("file");

//存储路径

String storePath = req.getServletContext().getRealPath("/temp");

//获取请求头

String header = part.getHeader("content-disposition");

//获取文件后缀名

String suffix = parseFileName(header);

//重命名

String name= UUID.randomUUID()+suffix;

//吧文件写到指定路径

part.write(storePath+File.separator+name);

//获得文件描述信息

String description = req.getParameter("description");

req.setAttribute("f", name);

req.setAttribute("des", description);

req.getRequestDispatcher("info.jsp").forward(req, resp);

}

private String parseFileName(String header) {

return header.substring(header.lastIndexOf("."),header.length()-1);

}

}

第三部分 info.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>Servlet3.0文件上传应用示例</title>

</head>

<body>

<h3><%=request.getAttribute("des") %></h3>

<img alt="" src="<%=basePath %>temp/<%=request.getAttribute("f") %>">

</body>

</html>

本实例只是简单介绍步骤,只能实现图片上传后的显示,至于上传的文本文件,没有做出显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息