千家信息网

Java怎么实现文件上传和下载的功能

发表于:2024-12-02 作者:千家信息网编辑
千家信息网最后更新 2024年12月02日,这篇文章主要讲解了"Java怎么实现文件上传和下载的功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java怎么实现文件上传和下载的功能"吧!第一步
千家信息网最后更新 2024年12月02日Java怎么实现文件上传和下载的功能

这篇文章主要讲解了"Java怎么实现文件上传和下载的功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java怎么实现文件上传和下载的功能"吧!

第一步:导包

导入commons-fileupload-1.3.3.jar和commons-io-2.4.jar两个依赖包

第二步:编写前端页面

1、提交页面 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>   Insert title here   
头像:

2、结果页面 result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Insert title here 
xx

第三步:编写上传和下载代码

1、上传图片 fileUpload.java

package cn.yz123123.controller;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;@WebServlet("/fileUpload")@MultipartConfigpublic class fileUpload extends HttpServlet { private static final long serialVersionUID = 1L;  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //String username = request.getParameter("username"); Part part = request.getPart("img");  //获取文件的真实名称 String header = part.getHeader("content-disposition"); String realName = header.substring(header.indexOf("filename=")+10, header.length()-1);  //获取文件自身流 InputStream inputStream = part.getInputStream();  //获取file真实路径,如果没有则创建 String dir = request.getServletContext().getRealPath("/file/"); File dirFile = new File(dir); //上面只是实例化了一个对象,并没有真正的创建一个文件夹 if (!dirFile.exists()) { dirFile.mkdirs(); }  //创建文件对象,并用流的形式写在相应的文件夹中 File file = new File(dir, realName); FileOutputStream fileOutputStream = new FileOutputStream(file);  byte[] buf = new byte[1024]; int len; while((len=inputStream.read(buf))!=-1) { fileOutputStream.write(buf, 0, len); }  fileOutputStream.close(); inputStream.close();  //以下为测试 request.setAttribute("src", request.getContextPath()+"/file/"+realName); request.setAttribute("filename", realName); request.getRequestDispatcher("/result.jsp").forward(request, response); } }

2、下载图片 fileDownload.java

package cn.yz123123.controller;import java.io.FileInputStream;import java.io.IOException;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet(urlPatterns = "/download")public class fileDownload extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String filename = req.getParameter("filename");  //获取文件的真实路径 String filePath = req.getServletContext().getRealPath("/file/"+filename);  FileInputStream fileInputStream = new FileInputStream(filePath);  resp.setCharacterEncoding("UTF-8"); resp.setHeader("Content-Disposition","attachment;filename="+UUID.randomUUID()+filename);  ServletOutputStream outputStream = resp.getOutputStream();  byte[] buf = new byte[1024]; int len;  while((len=fileInputStream.read(buf))!=-1) { outputStream.write(buf, 0, len); } outputStream.close(); fileInputStream.close();  }  @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); }}

感谢各位的阅读,以上就是"Java怎么实现文件上传和下载的功能"的内容了,经过本文的学习后,相信大家对Java怎么实现文件上传和下载的功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 功能 页面 学习 内容 图片 对象 文件夹 路径 两个 代码 前端 只是 名称 头像 实例 就是 形式 思路 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 特色软件开发欢迎咨询 数据库社区技术预览版 电脑服务器客户机管理 mysql 获取数据库时间 integer数据库长度 网络安全网络应用开发网络工程 广播电视网络安全应急管理评价 搜题软件开发论文 服务器域名购买了多久可以使用 检察网络安全自查总结 手机清理数据库在哪里 即时通讯软件开发立项报告 创建数据库表并录入表数据 s7服务器 网络技术专业可以从事的行业 厦门软件开发经理工资多少 网络技术专业核心期刊 我的世界服务器没有mod生物 网络安全应聘标准 计算机网络技术有选科限制吗 鼓楼区品牌软件开发常见问题 华为云服务器怎么放开全部端口 沧州软件开发价格走势 c语言纯软件开发职位 数据库主要表设计原则 主营网络技术服务的成本 中盈惠普合作培养软件开发 云服务器怎么安装erp 网络安全进学校手抄报三年级 南通华为网络安全
0