网站首页 > java教程 正文
本文目录:
文件的上传(根据源文件路径上传)
文件的上传(根据MultipartFile上传)
文件的下载
文件的上传,本文根据上传参数的不通介绍两种上传方式,分别是根据源文件路径和MultipartFile对象进行上传。
这两种方式基本上是类似的,因为可以获取或生成文件流,并由此在文件路径下生成新文件
此代码中没有删除源文件,使用者可根据实际需求来修改代码。
一、文件的上传(根据源文件路径上传)
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
/**
* @Author 程序幻境
* @Date 2022/11/20
* @Version 1.0
*/
public class FtpUtil {
public static void main(String[] args) {
uploadFile("C:\\Users\\CXHJ\\Desktop\\1.txt","C:\\Users\\CXHJ\\Desktop\\1","1.txt");
}
/**
* 上传文件
*
* @param srcFilePath 源文件全路径(包含文件名称)
* @param filePath 上传路径
* @param fileName 文件名(目标文件名称,一般和源文件同名)
*/
public static String uploadFile(String srcFilePath, String filePath, String fileName) {
try {
//根据源文件路径,创建文件流
File file = new File(srcFilePath);
InputStream in = new FileInputStream(file);
//新建目标文件
File desFile = mkdirFiLe(filePath, fileName);
//源文件写入目标文件
FileUtils.copyInputStreamToFile(in, desFile);
//关流
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
/**
* 判断路径是否存在,如果不存在,创建此路径
*
* @param filePath 文件路径
* @param fileName 文件名
* @throws IOException
*/
public static File mkdirFiLe(String filePath, String fileName) throws IOException {
File file = new File(filePath, fileName);
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
}
return file;
}
}
二、文件的上传(根据根据MultipartFile上传)
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
/**
* @Author 程序幻境
* @Date 2022/11/20
* @Version 1.0
*/
public class FtpUtil {
public static void main(String[] args) {
uploadFile("C:\\Users\\CXHJ\\Desktop\\1.txt","C:\\Users\\CXHJ\\Desktop\\1","1.txt");
}
/**
* 上传文件
*
* @param file 文件对象
* @param filePath 上传路径
* @param fileName 文件名
*/
public static String uploadFile(MultipartFile file, String filePath, String fileName) {
try {
//获取文件流
InputStream in = file.getInputStream();
//新建目标文件
File desFile = mkdirFiLe(filePath, fileName);
//源文件写入目标文件
FileUtils.copyInputStreamToFile(in, desFile);
//关流
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return fileName;
}
/**
* 判断路径是否存在,如果不存在,创建此路径
*
* @param filePath 文件路径
* @param fileName 文件名
* @throws IOException
*/
public static File mkdirFiLe(String filePath, String fileName) throws IOException {
File file = new File(filePath, fileName);
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
file.createNewFile();
}
return file;
}
}
三、文件的下载
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;
/**
* @param filePath 文件完整路径(包括文件名和扩展名)
* @param fileName 下载后看到的文件名
* @return 文件名
*/
public static void fileDownload(final HttpServletResponse response, String filePath, String fileName) throws Exception{
File file = new File(filePath);
byte[] data = FileUtils.readFileToByteArray(file);
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream;charset=UTF-8");
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(data);
outputStream.flush();
outputStream.close();
response.flushBuffer();
}
猜你喜欢
- 2024-10-21 Spring WEB工程整合使用FTP,ftp文本文件解析入库,文件上传下载
- 2024-10-21 使用SFTP跟服务器传输文件(怎么用sftp上传文件到服务器)
- 2024-10-21 Ubuntu 下安装 JDK17(ubuntu中安装jdk)
- 2024-10-21 JasperReport生成pdf文件 Java开发pdf文件 pdf文件生成及下载
- 2024-10-21 用JavaEE实现前后台交互的文件上传与下载,适合小白入门练手!
- 2024-10-21 JAVA 大文件上传解决方案(500M以上)
- 2024-10-21 《数据结构与算法分析Java语言描述》PDF文件免费下载
- 2024-10-21 CDH安装系统环境准备——系统版本和安装包下载地址指南
- 2024-10-21 jar文件怎么打开(base.apk.1文件怎么打开)
- 2024-10-21 Java 实现 FastDFS 实现文件的上传、下载、删除
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)