Java实现文件上传的方法总结

目录
  • 1.文件上传接收文件接口
  • 2.接口主要内容部分
  • 3.postman接口调用

1.文件上传接收文件接口

Controller成通过post上传方式定义接口,上传文件通常使用post的上传方式,get用于获取数据、文件。 单个入参可以使用@RequestParam标注,不用封装到类里边在使用@RepuestBody映射

    @PostMapping(value = "/uploadFile")
    @ApiOperation(value = "文件上传", notes = "文件上传")
    public Result uploadFile(@RequestParam (name = "file") MultipartFile file) throws Exception {
        String url = fileService.uploadFile(file);
    }

2.接口主要内容部分

2.1获取文件的相关信息

获取文件主要信息的目的是为了保存文件,通常会使用文件信息来作为文件的保存名称,以下是常用的文件信息获取

//获取文件名称
String originalFilename = file.getOriginalFilename();
// 截取上传文件的后缀
 String uploadFileSuffix = originalFilename.substring(originalFilename.indexOf('.') + 1, originalFilename.length());
 //获取文件父目录
  File Parentlocaltion=localFile.getParentFile();
//获取文件绝对目录
  File localFileAbsoluteFile=localFile.getAbsoluteFile();

需要获取项目所在位置,并且把文件保存到项目同一个目录下。可以用以下方式获取

String currentDir = System.getProperty("user.dir");

File(String pathname):使用给定的路径名字符串创建一个文件对象。

File(String parent, String child):使用给定的父目录路径名字符串和子目录名字符串创建一个文件对象。

createNewFile():创建一个新文件。

mkdir():创建一个新目录。

mkdirs():创建一个新目录,如果必要的话,还会递归地创建父目录。

delete():删除文件或目录。

2.2首先需要知道 JAVA根据file的路径创建文件夹

下面的代码将创建一个文件夹,如果文件夹不存在。

  • mkdirs() 方法将递归地创建所有必需的父文件夹。
  • 如果您只需要创建直接的父文件夹,可以使用 mkdir() 方法。
String folderPath = "D:\\uploadFiles\\report\\20230213\\";
File folder = new File(folderPath);
if (!folder.exists()) {
    folder.mkdirs();
}

2.3文件保存到本地:方法一

使用此方法保存必须要绝对路径且文件夹必须已存在,否则报错,所以一般会使用mkdirs,判断文件是否存在后创建文件夹

 public String uploadFile(MultipartFile file) throws Exception {
		File file = new File(fileName);
	    try {
	        //使用此方法保存必须要绝对路径且文件夹必须已存在,否则报错
	       String fileUrl = "D:\\uploadFiles\\report\\" + fileAdd + File.separator + System.currentTimeMillis() + "." + uploadFileSuffix;
            File localFile = new File(fileUrl);
            File Parentlocaltion=localFile.getParentFile();

            if (!Parentlocaltion.exists()) { //判断文件父目录是否存在
                Parentlocaltion.mkdirs();
            }
            //FileUtils.copyInputStreamToFile(file.getInputStream(), localFile);
            file.transferTo(localFile);
	    } catch (IOException e) {
	        e.printStackTrace();
	        return dealResultMap(false, "上传失败");
	    }*/
	    return dealResultMap(true, "上传成功");
 }

注意:两个文件对象,分别表示源文件和目标文件。然后,我们创建了两个文件通道,并使用 transferTo 方法将源文件通道中的数据传输到目标文件通道中。

2.4文件保存到本地:方法二

这个方式就是很普通的流写入方式,通过文件流读取文件后,写入本地磁盘

 public String uploadFile(MultipartFile file) throws Exception {
    String fileName = file.getOriginalFilename();
    try {
        //获取文件字节数组
        byte [] bytes = file.getBytes();
        //文件存储路径(/fileupload1/ 这样会在根目录下创建问价夹)
        File pfile = new File("/fileupload1/");
        //判断文件夹是否存在
        if(!pfile.exists()){
            //不存在时,创建文件夹
            pfile.mkdirs();
        }
        //创建文件
        File file = new File(pfile, fileName);
        //写入指定文件夹
        OutputStream out = new FileOutputStream(file);
        out.write(bytes);
    } catch (IOException e) {
        e.printStackTrace();
        return dealResultMap(false, "上传失败");
    }
    return dealResultMap(true, "上传成功");
}

3.postman接口调用

这种调用方式仅限于只有file一个上传文件,入参只是file。项目中如果需要多次上传文件可以进行多次接口调用。

到此这篇关于Java实现文件上传的方法总结的文章就介绍到这了,更多相关Java文件上传内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实现文件上传保存

    本文实例为大家分享了Java实现文件上传保存的具体代码,供大家参考,具体内容如下 框架 Spring Boot + FreeMarker + Ajax 第一次尝试Spring Boot 和FreeMarker, Spring Boot最大的感受是真的方便,约定大于配置,很多东西都是在使用过程中了解,看Spring Boot实战基本看完就忘得差不多… 后台 1. 从request获取到文件 MultipartFile类保存文件信息,文件上传放在request中,可debug查看request中实体

  • java使用ajax完成上传文件

    本文实例为大家分享了java使用ajax完成上传文件的具体代码,供大家参考,具体内容如下 使用ajax上传文件最重要的就是实例化FormData来进行上传文件: 1.html代码: <div class="kuang">     <p>文件上传</p>     <div class="san3">         <input type="file" name="fujianID&q

  • java实现上传文件到FTP

    本文实例为大家分享了java实现上传文件到FTP的具体代码,供大家参考,具体内容如下 需求说明:将指定文件上传到FTP,上传成功后修改文件名. 获取文件名及路径(这里是从数据库获取,所以前面的代码就不CV了) /**      * 测试上传      * @param map 从数据库获取到的文件信息 (包含文件路径FILE_PATH 文件类型FILE_TYPE等信息)      */      public void testUpdFtpFile(Map<String,Object> map

  • Java实现图片文件上传

    Java实现后台图片上传,将上传图片的接口进行分层,便于维护接口. 接口部分(interface) 将接口分为单图片上传以及多图片上传 public interface FileUploadService {     //单图片上传     PicUploadResult uplodadImg(MultipartFile uploadFile, HttpServletRequest request);     //多图片上传     PicUploadResult uploadManyImg(M

  • Java中的多种文件上传方式总结

    目录 请求类型 单文件上传 多文件上传 多文件单字段上传 多文件多字段上传 请求类型 单文件上传 //上传单个文件 @ResponseBody @RequestMapping(value = "uploadfile", produces = "multipart/form-data;charset=UTF-8") public String uploadfiles(HttpServletRequest request){ CommonsMultipartResolv

  • javaweb实现文件上传功能

    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1.创建一个空项目 2.新建一个web application 的Module 3.创建一个lib目录导入需要用的jar包 commons-io commons-fileupload 4.将lib包添加到项目依赖(右键 Add as Library) 5.编写文件上传表单 <%--通过表单上传文件     get : 上传文件大小有限制     post : 上传文件大小没有限制     上传文件必须要encty

  • Java超详细大文件分片上传代码

    目录 Java 大文件分片上传 首先是交互的控制器 上传文件分片参数接收 大文件分片上传服务类实现 文件分片上传定义公共服务类接口 文件分片上传文件操作接口实现类 OSS阿里云对象存储分片上传实现 京东云对象存储实现 腾讯云对象存储分片上传 分片上传前端代码实现 Java 大文件分片上传 原理:前端通过js读取文件,并将大文件按照指定大小拆分成多个分片,并且计算每个分片的MD5值.前端将每个分片分别上传到后端,后端在接收到文件之后验证当前分片的MD5值是否与上传的MD5一致,待所有分片上传完成之

  • Java实现文件上传的方法总结

    目录 1.文件上传接收文件接口 2.接口主要内容部分 3.postman接口调用 1.文件上传接收文件接口 Controller成通过post上传方式定义接口,上传文件通常使用post的上传方式,get用于获取数据.文件. 单个入参可以使用@RequestParam标注,不用封装到类里边在使用@RepuestBody映射 @PostMapping(value = "/uploadFile") @ApiOperation(value = "文件上传", notes =

  • Java实现文件上传的方法

    本文实例为大家分享了Java实现文件上传的具体代码,具体内容如下 1.java代码: package com.github.reston.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax

  • java使用smartupload组件实现文件上传的方法

    本文实例讲述了java使用smartupload组件实现文件上传的方法.分享给大家供大家参考.具体分析如下: 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,这里主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的? 废话不多说直接上代码: 复制代码 代码如下: import java.io.*; import java.util.*; import javax.servle

  • Java实现文件上传至服务器的方法

    在我们的web开发中,很多的时候都需要把本机的一些文件上传到web服务器上面去. 如:一个BBS系统,当用户使用这是系统的时候,能把本机的一些图片,文档上传到服务器上面去.然后其他用户可以去下载这些文件,那么这样的话,我们可以自己编程实现文件的上传 但是更好的方式是使用一些已有的组件帮助我们实现这种上传功能. 常用的上传组件: Apache 的 Commons FileUpload JavaZoom的UploadBean jspSmartUpload upload.jsp 代码: <%@ pag

  • Java实现文件上传和下载的方法详解

    目录 1.文件上传 1.1 介绍 1.2 代码实现 2.下载 2.1 介绍 2.2 代码实现 1.文件上传 1.1 介绍 文件上传,也称为upload,是指将本地图片.视频.音频等文件上传到服务器上,可以供其他用户浏览或下载的过程.文件上传在项目中应用非常广泛,我们经常发微博.发微信朋友圈都用到了文件上传功能. 文件上传时,对页面的form表单有如下要求: 表单属性 取值 说明 method post 必须选择post方式提交 enctype multipart/form-data 采用mult

  • Java实现文件上传到服务器本地并通过url访问的方法步骤

    目录 一.场景 二.SpringBoot默认静态资源访问方式 三.上传的文件应该存储在哪?怎么访问? 1.文件存储在哪? 2.怎么访问? 四.测试 五.总结 一.场景 Java实现文件上传到服务器本地,并通过url访问 有个需求,前端上传文件,需要用开关的方式同时支持上传七牛和服务器本地,方便不同的用户需求合理分配资源.本篇主要介绍文件上传到本地,然后通过url访问. 二.SpringBoot默认静态资源访问方式 首先想到的就是可以通过SpringBoot通常访问静态资源的方式,当访问:项目根路

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

  • servlet+JSP+mysql实现文件上传的方法

    本文实例讲述了servlet+JSP+mysql实现文件上传的方法.分享给大家供大家参考,具体如下: 一.文件上传的基本操作: 1. 表单属性enctype的设置 multipart/form-data和application/x-www-form-urlencoded的区别 FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是"application/x-www-form-urlencoded". 然而,在向服务器发送大量的文本.包含非ASCI

  • struts2+jsp实现文件上传的方法

    本文实例讲述了struts2+jsp实现文件上传的方法.分享给大家供大家参考.具体如下: 1. java代码: package com.wang.test; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public cla

  • Bootstrap的fileinput插件实现多文件上传的方法

    *1.bootstrap-fileinput 插件git下载地址 https://github.com/kartik-v/bootstrap-fileinput.git 2.解决使用bootstrap-fileinput得到返回值 上传图片 $("#file-0a").fileinput({ uploadUrl : "/upload_img",//上传图片的url allowedFileExtensions : [ 'jpg', 'png', 'gif' ], ov

随机推荐