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. c#XML配置文件辅助类

    在开发中经常会用到各种kv类型的配置 文件,像这样的 <?xml version="1.0" encoding="utf-8" ?> <sou ...

  2. Orchard中的Host和Tenant

      Orchard的多个子站点特性 Orchard中可以支持多个子站点.当你运行Orchard的时候,通常一个网站运行在一个应用程序域中.这也是一般ASP.NET应用程序区分两个网站的方法,也就是说两 ...

  3. [置顶] 实现360度全景图像的利器--PanoramaGL

    传送门 ☞轮子的专栏 ☞转载请注明 ☞ http://blog.csdn.net/leverage_1229 介绍 本指南将介绍一个PanoramaGL 0.1类库的简单用法,更多的细节请签出 Hel ...

  4. springMVC3学习(四)--访问静态文件如js,jpg,css

    如果你的DispatcherServlet拦截的是*.do这样的URL,就不存在访问不到静态资源的问题 如果你的DispatcherServlet拦截了"/"所有的请求,那同时对* ...

  5. mysql 建表 AUTO_INCREMENT , 数据类型 VARCHAR

    建表: 原帖地址: http://blog.sina.com.cn/s/blog_5da3d5c50100bjh0.html MySQL AUTO_INCREMENT 简介 (2009-01-02 1 ...

  6. 惊喜:opera换webkit内核后完美支持SDCH压缩协议

    csdn发邮件警告说再不发文章就取消我的专家头衔了.呵呵,其实我只是在csdn暴露了我的帐号密码以后不得已把csdn密码修改成一个我自己都记不住的货,所以很少上来了. 言归正传.我们从去年就在QQ空间 ...

  7. 把python文件编译成exe文件

    我用的是py2exe. 下载地址http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/ 你可以根绝自己的Python版本选择适当的下载 我 ...

  8. ios-制作静态.a文件

    一.制作静态库文件 /*静态库制作*/ // MakeA.h -(NSString*)testA; // MakeA.m -(NSString*)testA{ return @"静态库测试成 ...

  9. HashMap 死循环的探究

    大家都知道,HashMap采用链表解决Hash冲突,具体的HashMap的分析可以参考一下http://zhangshixi.iteye.com/blog/672697 的分析.因为是链表结构,那么就 ...

  10. CSS实现导航条Tab的三种方法

    前面的话   导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局   根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布 ...