网站老域名跳转到新域名,wordpress上传的文件在哪,营口网站制作,网上购物网站开发英文文献文章目录 一、前提准备1. 添加jspSmartUpload.jar 二、上传下载的实现1. Register.jsp2. UploadServlet3. Success.jsp4. DownloadServlet 总结 一、前提准备
1. 添加jspSmartUpload.jar
这个jar包在maven repository 仓库里是找不到#xff0c;需要自己从本地添加。你需要在… 文章目录 一、前提准备1. 添加jspSmartUpload.jar 二、上传下载的实现1. Register.jsp2. UploadServlet3. Success.jsp4. DownloadServlet 总结 一、前提准备
1. 添加jspSmartUpload.jar
这个jar包在maven repository 仓库里是找不到需要自己从本地添加。你需要在WEB-INF下创建lib文件夹然后把jar包复制到lib文件夹下。然后在pom.xml下添加如下依赖 !--文件上传下载的依赖--dependencygroupIdjspSmartUpload/groupIdartifactIdjspSmartUpload/artifactIdversion1.0/versionscopesystem/scopesystemPath${project.basedir}/src/main/webapp/WEB-INF/lib/jspSmartUpload.jar/systemPath/dependency在网上查的其他人上传下载用的是SmartUpload.jar但配置是一样的我猜应该只是文件名字不同。
二、上传下载的实现
1. Register.jsp
这里需要注意的是文件上传表单必须设置 methodpost 和 enctypemultipart/form-data。 multipart/form-data是不对字符编码在使用包含文件上传控件的表单时必须使用该值。文件的上传是通过 input typefile 这个标签实现的。
% page contentTypetext/html;charsetUTF-8 languagejava %
% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
c:set value${pageContext.request.contextPath} varpath/c:set
html
headtitleTitle/title
/head
bodydivlabel用户名/labelinput typetext nameuname/divform action${path}/RegisterServlet methodpost enctypemultipart/form-datadivlabel选择图片/labelbrbrinput typefile nameimg1input typefile nameimg2input typefile nameimg3/divbrinput typesubmit value上传/form
/body
/html
2. UploadServlet
对 Register.jsp 提交过来的文件进行上传。步骤如下
SmartUpload对象创建并初始化 ①创建SmartUpload su new SmartUpload(); ②初始化su.initialize(getServletConfig(), request, response);设置上传路径、文件类型、文件大小等 ①上传路径String path “D:/upload”; ②文件类型su.setAllowedFilesList(“jpg,gif,bmp,png”); ③单个文件最大值su.setMaxFileSize(1024 * 1024 * 5);文件上传。文件的上传是以单个文件的形式上传的。步骤 ①上传准备su.upload(); ②获取上传文件的数量int count su.getFiles().getCount(); ③获取每一个要上传的文件File file su.getFiles().getFile(i); ④保存文件到某路径file.saveAs(path “/” file.getFileName());
package com.servlet;import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;WebServlet(name RegisterServlet, value /RegisterServlet)
public class RegisterServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding(utf-8);SmartUpload su new SmartUpload();su.initialize(getServletConfig(), request, response);su.setMaxFileSize(1024 * 1024 * 5);su.setAllowedFilesList(jpg,gif,bmp,png);String path D:/upload;ListString fileNames new ArrayList();try {su.upload();int count su.getFiles().getCount();for (int i0; i count; i) {File file su.getFiles().getFile(i);// 文件大小为0就不下载了if (file.getSize() 0) {continue;}file.saveAs(path / file.getFileName());fileNames.add(file.getFileName());}} catch (SmartUploadException e) {e.printStackTrace();}System.out.println(图片上传成功);// 将文件名传递给Success.jsp页面request.setAttribute(fileNames, fileNames);request.getRequestDispatcher(Success.jsp).forward(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}
3. Success.jsp
上传成功后的页面用来显示上传成功的图片和图片的名称和下载地址。注意这里显示图片的路径 D:/upload/${fileName}需要在服务器配置虚拟路径否则在服务器上是无法获取到该路径的。
% page contentTypetext/html;charsetUTF-8 languagejava %
% taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
c:set value${pageContext.request.contextPath} varpath/c:set
html
headtitleTitle/title
/head
bodyc:forEach items${fileNames} varfileName!--图片显示--img alt${fileName} srcD:/upload/${fileName}!--图片名字--h1${fileName}/h1!--图片下载--a href${path}/LoadServlet?fileName${fileName}下载图片/a/c:forEach
/body
/html
4. DownloadServlet
点击下载图片的链接后下载请求发送到该页面。获取到要下载文件的名字查询到该图片如果存在的话就执行下载操作。
SmartUpload对象创建并初始化 ①创建SmartUpload su new SmartUpload(); ②初始化su.initialize(getServletConfig(), request, response);设置下载路径 ①获取文件名String path request.getParameter(“fileName”); ②设置下载路径path “D:/upload/” path;下载文件 ①根据文件路径下载文件su.downloadFile(path);
package com.servlet;import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.sql.SQLException;WebServlet(name LoadServlet, value /LoadServlet)
public class LoadServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String path request.getParameter(fileName);SmartUpload su new SmartUpload();su.initialize(getServletConfig(), request, response);path D:/upload/ path;// 禁止浏览器下载后自动打开资源su.setContentDisposition(null);try {// 根据文件路径下载文件su.downloadFile(path);} catch (SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ServletException e) {// TODO Auto-generated catch blocke.printStackTrace();}}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}总结
本文分享了如何实现文件的上传下载。主要是需要SmartUpload这个类使用类里封装的方法分别实现文件上传文件下载。