java实现上传文件到服务器和客户端

yizhihongxing

下面是详细讲解 Java 实现上传文件到服务器和客户端的完整攻略:

一、上传文件到服务器

1、准备工作

用 Java 上传文件到服务器,需要用到 commons-fileuploadcommons-io 两个 Jar 包。这两个 Jar 包可以在 Maven 仓库中进行下载,下载方式详见如下链接:

  • commons-fileupload:https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload
  • commons-io:https://mvnrepository.com/artifact/commons-io/commons-io

2、前端页面

前端页面需要创建一个表单来上传文件,代码如下:

<form action="/upload" method="post" enctype="multipart/form-data">
   <input type="file" name="file"/>
   <input type="submit" value="上传"/>
</form>

3、后端代码

后端需要实现一个上传文件的接口,将前端传过来的文件保存到服务器上。示例代码如下:

@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) {
    if (file.isEmpty()) {
        return "上传文件不能为空";
    }

    // 获取上传文件名称
    String fileName = file.getOriginalFilename();

    // 设置上传文件保存的路径
    String filePath = "D:/upload/";

    // 检查保存路径是否存在,不存在则创建
    File saveFile = new File(filePath);
    if (!saveFile.exists()) {
        saveFile.mkdirs();
    }

    try {
        // 保存上传的文件到目标路径
        file.transferTo(new File(filePath + fileName));
    } catch (IOException e) {
        e.printStackTrace();
        return "上传失败,请稍后重试";
    }

    return "上传成功";
}

二、下载文件到客户端

1、前端页面

前端页面提供一个下载按钮,用于触发文件下载的操作。示例代码如下:

<a href="/download?fileName=test.txt">下载文件</a>

2、后端代码

后端需要处理文件下载的请求,将需要下载的文件以二进制流的形式传输到客户端。示例代码如下:

@GetMapping("/download")
public void download(HttpServletResponse response, @RequestParam("fileName") String fileName) {
    // 获取要下载的文件路径
    String filePath = "D:/upload/";

    File file = new File(filePath + fileName);

    if (file.exists()) {
        try {
            // 读取要下载的文件,保存到字节数组中
            byte[] data = FileUtils.readFileToByteArray(file);

            // 设置响应头信息
            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName);

            // 写入响应流中
            ServletOutputStream outputStream = response.getOutputStream();
            outputStream.write(data);
            outputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上就是 Java 实现上传文件到服务器和客户端的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现上传文件到服务器和客户端 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 手机WPS Office表格中的数据怎么自定义名称?

    若想在手机WPS Office表格中自定义数据的名称,可按照以下步骤进行: 点击表格中待自定义名称的数据单元格。 在弹出的编辑框中,点击“名称”选项卡。 在名称选项卡中,点击“定义名称”按钮。 在弹出的对话框中,输入该数据的自定义名称,可按照”名称”!图片或者”名称:范围”的格式定义,然后点击确定即可。 例如,我们要自定义名为“产品销量”的单元格,实现方式如…

    other 2023年6月25日
    00
  • npm查看gyp版本

    npm查看gyp版本 在开发Node.js包时,可能需要使用gyp构建工具。在使用gyp构建工具过程中,需要确保安装的gyp版本与Node.js包中使用的gyp版本匹配。本文将介绍npm中查看gyp版本的方法。 使用npm list命令查看gyp版本 npm list命令可以显示当前目录下安装的Node.js包的依赖关系。可以使用以下命令查看gyp版本: n…

    其他 2023年3月28日
    00
  • 基于jquery自定义的漂亮单选按钮RadioButton

    下面我将详细讲解基于 jQuery 自定义的漂亮单选按钮 RadioButton 的完整攻略。 环境准备 在开始前,需要准备以下软件和库文件: jQuery Font Awesome HTML / CSS / JavaScript 编辑器 HTML 结构 首先,我们需要定义一组单选框,每个单选框对应一个选项,然后为每个单选框绑定一个唯一的 ID 用于后续的操…

    other 2023年6月27日
    00
  • 如何在visualstudiocode中注释多行?

    以下是在Visual Studio Code中注释多行的完整攻略,包括两个示例说明: 1. 使用快捷键注释多行 在Visual Studio Code中,我们可以使用快捷键Ctrl + /(Windows和Linux)或Command + /(Mac)来注释多行代码。以下是详细步骤: 选中要注释的多行代码。 按下Ctrl + /(Windows和Linux)…

    other 2023年5月7日
    00
  • 浅析Android系统中HTTPS通信的实现

    浅析Android系统中HTTPS通信的实现 介绍 HTTPS是在HTTP协议基础上加入了加密/解密机制,使得数据在传输过程中更加安全。在Android平台下,HTTPS通信的实现也是利用了该加密/解密机制来保障数据的安全传输。 本文将从以下几个方面对Android系统中HTTPS通信的实现进行详细讲解: SSL/TLS协议简介 Android中的TLS/S…

    other 2023年6月27日
    00
  • Java Spring循环依赖原理与bean的生命周期图文案例详解

    Java Spring是一套开源的JavaEE框架,它的核心是IoC(控制反转)和AOP(面向切面编程)。在Spring中,循环依赖是一个比较重要的概念,本文将详细讲解Java Spring循环依赖原理与bean的生命周期。 什么是循环依赖 在Spring容器中,当Bean A依赖于Bean B,并且Bean B又依赖于Bean A时,我们就称这种情况为循环…

    other 2023年6月27日
    00
  • centos软链接命令(十)

    CentOS软链接命令(十) 在Linux系统中,软链接(Symbolic Link)也称为符号链接,是一种特殊的文件类型,它是一个指向另一个文件的快捷方式。软链接可以帮助我们在不更改原文件的情况下,访问另一个文件。CentOS是一种常用的Linux操作系统,它提供了许多常用的软链接命令。本文将介绍CentOS中常用的软链接命令。 创建软链接 我们可以使用l…

    其他 2023年3月28日
    00
  • Win10打不开注册表提示文件系统错误(-1073740771) Win10文件系统错误解决方法

    Win10打不开注册表提示文件系统错误(-1073740771) Win10文件系统错误解决方法 如果在Windows 10中尝试打开注册表时遇到“文件系统错误(-1073740771)”的提示,可能是由于受损的系统文件或病毒感染等原因。在本文中,我们将提供几种可能的解决方案,以尝试解决这个问题。 方法一:运行SFC和DISM扫描 SFC(系统文件检查)和D…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部