1、jsp页面操作文件:

 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<title>上传文件 </title>
<link rel="stylesheet" type="text/css" href="../css/uploadfile.css">
<link rel="stylesheet" type="text/css" href="../css/footer.css">
<script type="text/javascript" src="../js/uploadfile.js"></script>
</head>
<body>
<div class="container">
<form action="../upLoadFileServlet" name="uploadform" enctype="multipart/form-data" method="post">
<div class="back"><span class="cleckback" onclick="javascript:history.back()" style="padding-right: 50px;">返回上一级</span></div>
<div class="upfile-div" align="center">
<div class="title-div">上传文件</div>
<table class="toggle-table">
<tr>
<td>上传者姓名:</td>
<td><input type="text" id="uploadfileuser" name="uploadfileusername" class="inputname"/></td>
</tr>
<tr>
<td>上&nbsp;传&nbsp;时&nbsp;间:</td>
<td><input type="datetime-local" class="inputtime"></td>
</tr>
<tr>
<td>选择上传文件:</td>
<td><input type="file" name="uploadfile" class="seclectedfile"/></td>
</tr>
</table>
<div class="toggle-btns">
<input type="submit" value="上传" class="mybtn"/>
<input type="button" value="取消" class="mybtn" onclick="uploadUserCheck()"/>
</div>
</div>
</form>
</div>
<div class="footer"><jsp:include page="footer.jsp"></jsp:include></div>
</body>
</html>

2、uploadresult.jsp:

 <%@ page language="java" import="java.util.*" contentType="text/html; charset=gb2312"%>
<%
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>My JSP 'uploadresult.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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<p>121312313132123132</p>
<%
String msg = (String)request.getAttribute("upload.message");
if (msg != null)
{
%>
<%= msg %>
<%
}
%>
</body>
</html>

3、servlet:

 package web.servlet;

 import java.io.File;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; @SuppressWarnings("serial")
public class UpLoadFileServlet extends HttpServlet { private int cachesize = 1024 * 1024; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setCharacterEncoding("gb2312");
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
String uploadfileUserName = request.getParameter("uploadfileusername"); // System.out.println(uploadfileUserName); DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File("e:/tmp/"));//设置文件缓存路径
factory.setSizeThreshold(cachesize); //设置文件上传的上限,-1表示无上限
ServletFileUpload upload = new ServletFileUpload(factory);
if (!ServletFileUpload.isMultipartContent(request)){
return;
}
try { @SuppressWarnings("unchecked")
List<FileItem> items = upload.parseRequest(request);//上传文件并解析出所有字段
Iterator<FileItem> iter = items.iterator();
while(iter.hasNext())
{
FileItem item = iter.next();
if (item.isFormField()) //表单字段
{
System.out.println(item.getFieldName());
System.out.println(item.getString());
}
else
{
if (item.getName() != null && !item.equals(""))
{
System.out.println(item.getName()); File tempFile = new File(item.getName()); //获得临时文件(创建内存文件)
String filename = tempFile.getName(); File file = new File(this.getServletContext().getRealPath("/")+"AcceptedUploadFiles",filename);
// OutputStream os = new FileOutputStream(file);
item.write(file);
request.setAttribute("upload.message", "成功上传文件:"+filename);
}
else
{
request.setAttribute("upload.message", "请选择上传文件");
} }
}
} catch (Exception e) {
request.setAttribute("upload.message", "文件上传失败");
}
//dispatcher跳转其他资源
request.getRequestDispatcher("jsp/uploadresult.jsp").forward(request,response);
} }

一个用于上传文件的servlet的更多相关文章

  1. .net 模拟发起HTTP请求(用于上传文件)

    用C#在服务端发起http请求,附上代码一 /// <summary> /// 文件帮助类 /// </summary> public class FileHelper { / ...

  2. 安装lszrz,用于上传文件

    wget http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gztar zxvf lrzsz-0.12.20.tar.gzcd lrzsz- ...

  3. form、iframe实现异步上传文件

    转载自:http://blog.csdn.net/sunjing21/article/details/4779321 实现主要功能: 页面提供一个上传图片的input file选择框,用于上传某一类型 ...

  4. Springboot上传文件临时目录无效

    一个奇葩问题,虽然解决了,但还是没弄清楚,小记一笔. 年后回来,测试人员对年前的3次迭代的功能进行了回归测试,然后发现所有excel导入的功能都失效了.作为后台开发人员,当然是第一时间打开运行日志排查 ...

  5. Flex和Servlet结合上传文件

    Flex和Servlet结合上传文件 1.准备工作 (1)下载文件上传的组件,commons-fileupload-1.3.1.jar (2)下载文件输入输出jar,commons-io-2.4.ja ...

  6. 为什么上传文件的表单里面要加一个属性enctype=multipart/form-data?

    首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选:1.application/x-www-form-urlencoded2.multipart/form-data3.text/ ...

  7. ajaxfileupload原理及用法,主要用于即想用ajax序列化传递参数,又必须上传文件

    一,原理 AjaxFileUpload.js并不是一个很出名的插件,只是别人写好的放出来供大家用,原理都是创建隐藏的表单和iframe然后用JS去提交,获得返回值. 当初做了个异步上传的功能,选择它因 ...

  8. SSM框架中如何简便上传文件表单

    此种方式上传文件相对简单,以下均经测试成功,才提供到此. 以下为单个文件上传方式 分析:本次的工作目的是根据一级标题产生对应的二级标题,在每个二级标题下对应一个(file字段)新闻文件,当点击新闻文件 ...

  9. Dubbo服务 上传文件解决方案以及Hessian协议

    ​ 协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在通 ...

随机推荐

  1. 玩转python之字符串逐个字符或逐词反转

    众所周知,python中的字符串是无法改变的,反转一个字符串自然要创建一个拷贝:最简单的方法,当然是步长为“-1”的切片: result = astring[::-1] 如果要是按单词来反转,需要三步 ...

  2. 【IOS开发】如何画1像素的线

    最近在项目中画了一根1像素的线,我是通过直接花一个但是通过PS查看,画了不止1个像素. 原代码语句: label1 = [[UILabel alloc] initWithFrame:CGRectMak ...

  3. 如何在数据库中存储IP地址

    最近改一个比较老的web系统,该系统是通过账号或者ip地址(白名单)验证限制访问权限的. 由于运营的时间比较长了,发现进入网站巨卡... 原因就是:之前的数据库(sqlserver)存储ip地址是用的 ...

  4. 2013.2.A&&3.A

    半期考之后,磨磨蹭蹭的刷了两套长乐的模拟题[=-=我现在实在是不敢恭维自己的刷题速度]感觉貌似很久没有来这里喂食了,就顺便yy下题解好了 2013.2.A: ice :BFS和spfa都可以,我打了个 ...

  5. SharePoint开发

    做SharePoint开发有时候是一件比较痛苦的事情,毕竟庞大的框架总是笨重的~~ 往往如果采取传统的方式开发SharePoint的话,更改一个代码需要有以下操作: 1)更改代码 2)VS编译——&g ...

  6. .Net 异步随手记(三)

    从<.Net 异步随手记(二)>来看,总感觉还差点儿什么,就是对不同情况的处理.比如当一个 Task 完成了后,我想让它继续执行 T1,如果被取消了就去执行 T2,如果...就去执行 T3 ...

  7. CSS盒子的浮动

    web前端学习笔记(CSS盒子的浮动) 在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界:而在竖直方向和兄弟元素依次排列,不能并排.使用“浮动”方式后,块级元素的表现就会有所不同. ...

  8. 虚拟化平台cloudstack新版本的调试

    虚拟化平台cloudstack(7)——新版本的调试 调试环境 ubuntu 12.04 JDK1.7 apache-maven-3.10 eclipse 4.2 Juno mysql 5 源码下载及 ...

  9. [置顶] github 出现 Permission denied (publickey)的解决

    今天写了一篇博客,想push到github上的时候出现了以下错误 Permission denied (publickey). fatal: The remote end hung up unexpe ...

  10. Eclipse代码自动提示设置

    以前百度过如何设置Eclipse代码自动提示,但是本人记性不好,所以把这个方法写成一篇日志,这样以后就不用百度了,直接看自己的博客就是了,而且还增加了自己博客的点击量.以下是从各个地方看到总结的方法: ...