JSP的文件上传和下载
来源:互联网 发布:2017年四川省大数据 编辑:程序博客网 时间:2024/06/05 08:37
<%@ 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>My JSP '1.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> <form enctype="multipart/form-data" action="<%=path %>/2.jsp" method="post"> 文件名:<input type="text" name="uname"/> 选择图片: <input type="file" name="myfile"/> <input type="submit" value="提交"/> </form> <a href="Servlet?filename=/s.jpg ">下载文件</a> ${errorResult} </body></html>文件上传必须使用type="file"这个类型的
<%@page import="org.apache.commons.fileupload.FileItemFactory"%><%@page import="java.io.File"%><%@page import="org.apache.commons.fileupload.FileItem"%><%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%
//解决乱码问题
request.setCharacterEncoding("utf-8");
//判断请求信息中的内容是否是"multipart/form-data"类型
boolean flag=ServletFileUpload.isMultipartContent(request);
if(flag){
//找到一个解析器,解析请求中的各个项目
//工厂参数是一个接口,用他的实现类
FileItemFactory factory=new DiskFileItemFactory();
//如果要解析,必须借助工厂参数
ServletFileUpload upload=new ServletFileUpload(factory);
//使用parseRequest 返回一个类型为FileItem的list集合
List<FileItem> list=upload.parseRequest(request);
//每一个fileitem都代表一个表单元素
//使用迭代器迭代
Iterator<FileItem> iter=list.iterator();
//使用while循环进行逐项迭代
//iter.hasNext()判断下一个有没有元素
while(iter.hasNext()){
//如果下一个不为空
FileItem item= iter.next();
if(item!=null){
//对当前item进行判断看是普通的还是上传用的
boolean bool=item.isFormField();
if(bool){//证明是普通表单
//获取该表单的value
String name=item.getFieldName();//返回表单元素的name值
if(name.equals("uname")){
out.print(item.getString("utf-8"));
}
}else{//是一个上传文件域
String fname=item.getName();//上传文件域的文件名
//扔到服务器目录下
String path="/upload/";//文件上传不能使用相对路径
//转换为绝对路径
path=this.getServletContext().getRealPath(path);
//构建一个file对象,借助File对象的getname方法
File file=new File(fname);
//构建一个file对象 第一个参数父路径 第二个参数子路径
File ffile=new File(path,file.getName());
item.write(ffile);
out.print("上传成功");
}
}
}
}
%>
这里是文件上传
下面是文件下载
package cn.happy;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.corba.se.spi.orbutil.fsm.Input;public class Servlet extends HttpServlet {/**苏小白 */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}/**苏小白 */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String path=getServletContext().getRealPath("/")+"/upload/";String filename=request.getParameter("filename");File file=new File(path+filename);if(file!=null){response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;filefilename=\""+filename+"\"");InputStream inputStream=new FileInputStream(file);ServletOutputStream sops=response.getOutputStream();byte b[]=new byte[1024];int n;while((n=inputStream.read(b))!=-1){sops.write(b,0,n);}sops.close();inputStream.close();}else{request.setAttribute("errorResult", "文件不存在或加载失败");request.getRequestDispatcher("/1.jsp").forward(request, response);}}}
- jsp之文件的上传和下载
- JSP文件的上传和下载
- JSP的文件上传和下载
- jsp 文件上传和下载
- 一个JSP上传文件和下载文件的JavaBean
- JSP上传文件和下载文件的JavaBean
- jsp文件的上传和下载操作代码
- Servlet和Jsp实现原生的上传与下载文件
- jsp+servlet实现文件的上传和下载
- 文件上传和下载(一)--【jsp+servlet】
- Jsp 使用 fileupload 文件上传和下载
- Struts2+jsp上传和下载文件
- JSP文件下载、上传
- jsp文件上传、下载
- jsp文件上传、下载
- jsp 文件的上传与下载
- JSP实现文件的上传与下载
- JSP实现的文件上传与下载
- bootstrap弹出框
- 百度地图开发自定义覆盖物事件及样式定制
- 价值百万美金的秘密!在其它人发现之前,提早得到它...
- C-指针
- PAT(Advanced level) 1002 A+B for Polynomials(25)
- JSP的文件上传和下载
- 单行文本溢出与多行文本溢出
- 针对piix4_smbus ****host smbus controller not enabled的解决方法
- tf.train.Saver函数的用法之保存全部变量和模型
- Java Spring MVC 和 REST 处理404等异常的不同
- 数据结构——树(5):霍夫曼树
- 宠物商店
- Hibernate(二):Hibernate搭建开发环境+简单实例
- extends关于父类private字段的思考