JSP+SERVLET实现“上传”
来源:互联网 发布:linux创建文件夹 权限 编辑:程序博客网 时间:2024/05/16 11:26
环境:
需要导入:commons-fileupload-1.2.jar和commons-io-1.3.1.jar两个jar文件
页面-------------------------------------------------------------------------------------
<body>
<center>
<h3>测试,不注册账号,也可以上传文件,并返回一个路径</h3>
<form action="uploadServlet" method="post" enctype="multipart/form-data">
上传文件:<input name="uploadFile" id="uploadFile" type="file" size="10">
<input type="submit" value="上传">
</form>
</center>
<hr color="blue">
<h3>${msg }</h3>
</body>
servlet---------------------------------------------------------------------------------------
package ??;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//创建一个基于磁盘文件项的工厂
DiskFileItemFactory factory=new DiskFileItemFactory();
//设置工厂约束
//1.指定文件上传后,的存放url
File file=new File(this.getServletContext().getRealPath("/")+"download");
factory.setRepository(file);
//2.设置最大内存大小
factory.setSizeThreshold(1024);
//创建一个文件上传处理对象
ServletFileUpload upload=new ServletFileUpload(factory);
//设置最大上传文件大小
upload.setFileSizeMax(1024*1024*100);
try {
List items=upload.parseRequest(request);
Iterator ite=items.iterator();
FileItem item=(FileItem) ite.next();
if(item.isFormField()){//判断是不是表单数据
// if("username".equals(item.getFieldName())){
// System.out.println(item.getString("utf-8"));
// }
}else{
//获取的上传的文件的路径
File itemFile=new File(item.getName());
//System.out.println("itemFile.getPath()="+itemFile.getPath());
//获取的的是服务器上存放文件的路径
File target=new File(factory.getRepository(),itemFile.getName());
//判断服务器上是否存在该文件
if(target.exists()){
//如果存在,就返回
String msg="您上传的文件的名称,在服务器上已经存在,请您更改文件名后在上传";
request.setAttribute("msg",msg);
request.getRequestDispatcher("index.jsp").forward(request, response);
//在这里就结束程序,以免继续往下执行,因为在这里response已经提交了
return;
}
//System.out.println("target="+target.getPath());
try {
item.write(target);
} catch (Exception e) {
String msg="没有选择上传的文件";
request.setAttribute("msg",msg);
request.getRequestDispatcher("index.jsp").forward(request, response);
//在这里就结束程序,以免继续往下执行,因为在这里response已经提交了
return;
}
}
String msg="上传文件成功";
request.setAttribute("msg",msg);
request.getRequestDispatcher("index.jsp").forward(request, response);
} catch (FileUploadException e) {
String msg="@_#,上传失败,您上传的文件大于1kb";
request.setAttribute("msg",msg);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
}
下载------------------------------------------------------------------------------------------------
String filename=request.getParameter("filename");
File file=new File(this.getServletContext().getRealPath("/")+"download");//获取服务器上的文件夹
response.setContentType("application/*");//设置下载的文件类型是应用程序
response.setHeader("Content-disposition",
"attachment; filename="+URLEncoder.encode(filename,"UTF-8"));//解决下载中文名文件的乱码问题
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file+"/"+filename));
BufferedOutputStream bos=new BufferedOutputStream(response.getOutputStream());
byte[] b=new byte[1024];
while(bis.read(b) !=-1){
bos.write(b);
}
bis.close();
bos.flush();
bos.close();
- JSP+SERVLET实现“上传”
- jsp+Servlet实现上传
- jsp+servlet实现上传文件
- jsp+servlet实现文件上传
- JSP+servlet实现上传文件
- jsp、servlet实现文件上传
- JSP+Servlet实现文件上传
- jsp+servlet实现文件上传
- jsp&servlet实现文件上传
- jsp+servlet实现上传图片
- Jsp+Servlet文件上传功能实现
- Jsp/Servlet:实现文件上传与下载
- servlet + JSP+ mysql实现文件的上传
- servlet + JSP+ mysql实现文件的上传
- jsp+servlet实现文件上传与下载
- Jsp/Servlet:实现文件上传与下载
- Jsp/Servlet:实现文件上传与下载
- 用jsp、Servlet实现上传文件
- C#中使用存储过程
- 学习Oracle
- 急求AD590测温仿真电路,用PROTEUS
- 在UNIX裸设备和文件系统之间移动ORACLE(2)--转
- String中的==和.equals()
- JSP+SERVLET实现“上传”
- Garbage Collection
- 深入了解Canvas标签(1)——基本用法
- 使用System.Net.Mail.SmtpClient 发送邮件
- NoSQL数据库探讨 -- 非关系型数据库
- windows 2008 server iis7 服务 上传文件大小限制(转于傻瓜路路的空间)
- 潘金莲同志永垂不朽!(搞笑)
- Step-By-Step Installation of 9i RAC on IBM AIX(1)
- Step-By-Step Installation of 9i RAC on IBM AIX(2) 转载