upload.jsp 上传界面
<form action="UploadServlet" enctype="multipart/form-data" method="post">
<p>
用户名:<input type="text" name="username" size="20">
</p>
<p>
<input type="file" name="file" multiple="multiple">
</p>
<input type="submit" value="提交">
</form>
servlet上传功能
路径:/UploadServlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream is=null;
FileOutputStream fos=null;
//1.创建解析工厂
FileItemFactory factory=new DiskFileItemFactory();
//2.创建解析器
ServletFileUpload upload=new ServletFileUpload(factory);
//3.设置编码格式
upload.setHeaderEncoding("UTF-8");
//4.解析request请求
try {
List<FileItem> list=upload.parseRequest(request);
//5.对集合进行遍历
for(FileItem item:list){
//6.判断输入文件类型
if(item.isFormField()){
String name=item.getFieldName();//获得标签的属性
String value=item.getString(); //获得标签的值
System.out.println(name+":"+value);
}
else {
String filename=item.getName(); //获得上传文件名
request.setAttribute("file", filename);
is=item.getInputStream(); //输入流
String path=this.getServletContext().getRealPath("/uploadfolder/"); //在webcontent下面的文件夹
fos=new FileOutputStream(path+filename); //输出流
int i=-1;
byte[] buf=new byte[512];
while((i=is.read(buf))!=-1){
fos.write(buf);
}
}
}
request.getRequestDispatcher("success.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if (is!=null) {
is.close();
}
if (fos!=null) {
fos.close();
}
}
}
下载
download.jsp下载界面:
<a href="DownLoadServlet?file=ajax请求.png">下载</a>
路径:/DownLoadServlet
servlet下载功能实现
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置字符编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//获取文件及其路径
String filename=request.getParameter("file");
String path=this.getServletContext().getRealPath("/uploadfolder/");
File file=new File(path+filename);
//下载步骤
//1.设置响应头,设置文件下载的默认名,激活浏览器的下载框
response.setHeader("Content-Disposition","attachment;fileName="+URLEncoder.encode(filename, "utf-8"));
//2.获取输出流
ServletOutputStream os=response.getOutputStream();
//3.文件输入流
FileInputStream fis=new FileInputStream(file);
int i=-1;
byte[] buf=new byte[512];
//4.向浏览器输出信息
while((i=fis.read(buf))!=-1){
os.write(buf);
}
//5.关闭流
os.close();
fis.close();
}
<form action="UploadServlet" enctype="multipart/form-data" method="post">
<p>
用户名:<input type="text" name="username" size="20">
</p>
<p>
<input type="file" name="file" multiple="multiple">
</p>
<input type="submit" value="提交">
</form>
servlet上传功能
路径:/UploadServlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream is=null;
FileOutputStream fos=null;
//1.创建解析工厂
FileItemFactory factory=new DiskFileItemFactory();
//2.创建解析器
ServletFileUpload upload=new ServletFileUpload(factory);
//3.设置编码格式
upload.setHeaderEncoding("UTF-8");
//4.解析request请求
try {
List<FileItem> list=upload.parseRequest(request);
//5.对集合进行遍历
for(FileItem item:list){
//6.判断输入文件类型
if(item.isFormField()){
String name=item.getFieldName();//获得标签的属性
String value=item.getString(); //获得标签的值
System.out.println(name+":"+value);
}
else {
String filename=item.getName(); //获得上传文件名
request.setAttribute("file", filename);
is=item.getInputStream(); //输入流
String path=this.getServletContext().getRealPath("/uploadfolder/"); //在webcontent下面的文件夹
fos=new FileOutputStream(path+filename); //输出流
int i=-1;
byte[] buf=new byte[512];
while((i=is.read(buf))!=-1){
fos.write(buf);
}
}
}
request.getRequestDispatcher("success.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if (is!=null) {
is.close();
}
if (fos!=null) {
fos.close();
}
}
}
下载
download.jsp下载界面:
<a href="DownLoadServlet?file=ajax请求.png">下载</a>
路径:/DownLoadServlet
servlet下载功能实现
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置字符编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//获取文件及其路径
String filename=request.getParameter("file");
String path=this.getServletContext().getRealPath("/uploadfolder/");
File file=new File(path+filename);
//下载步骤
//1.设置响应头,设置文件下载的默认名,激活浏览器的下载框
response.setHeader("Content-Disposition","attachment;fileName="+URLEncoder.encode(filename, "utf-8"));
//2.获取输出流
ServletOutputStream os=response.getOutputStream();
//3.文件输入流
FileInputStream fis=new FileInputStream(file);
int i=-1;
byte[] buf=new byte[512];
//4.向浏览器输出信息
while((i=fis.read(buf))!=-1){
os.write(buf);
}
//5.关闭流
os.close();
fis.close();
}