java 文件上传下载
翻新十年前的老项目,文件上传改为调用接口方式,记录一下子~~~
java后台代码:
//取配置文件中的上传目录
@Value("${uploadPath}")
String path; //文件上传接口
@RequestMapping(value = "upload")
@ResponseBody
public String getMobileAuthCode( HttpServletRequest request,String files ,String appId,String fileUUIDs,String myCallback)
throws Exception {
//文件支持多个 以逗号分隔
String[] file=files.split(",");
//文件生成的uuid ,以逗号分隔,防止文件重名
String[] fileUUID=fileUUIDs.split(",");
//本地文件
File localFile;
InputStream input = null;
OutputStream output = null;
for (int i = 0; i <file.length ; i++) {
localFile=new File(file[i]);
String fileName = localFile.getName();
//获取文件类型
String filetype=fileName.substring(fileName.indexOf("."),fileName.length());
try {
File var4 = new File(path+"\\" + appId);
//若目标地址不存在,则创建
if (!var4.exists() || var4.exists() && !var4.isDirectory()) {
var4.mkdirs();
}
//将本地文件 写入目标地址
input = new FileInputStream(localFile);
output = new FileOutputStream(new File(path + "\\" +appId+"\\"+ fileUUID[i]+filetype));
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buf)) != -1) {
output.write(buf, 0, bytesRead);
}
}catch (Exception e){
System.out.println("文件上传失败");
e.printStackTrace();
}finally {
input.close();
output.close();
}
}
String result = "{'ret':'true'}";
result=myCallback+"("+result+")";
return result;
}
//文件下载
@RequestMapping("downLoad")
public ResponseEntity<byte[]> downloadFile(String fileUrl,String needFile) throws IOException {
//获取文件路径
HttpHeaders headers = new HttpHeaders();//http头信息
File file = new File(path+"\\"+fileUrl);//新建一个文件
String downloadFileName = new String(needFile.getBytes(), "iso-8859-1");
//设置编码
headers.setContentDispositionFormData("attachment", downloadFileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
jsp 页面代码:
window.open("http://ip:port/file/downLoad?needFile="+filename+"&fileUrl="+fileurl);//下载
//上传 $.ajax({
url: "http://ip:port/file/upload",
type: 'post',
dataType:'jsonp',
jsonp: "callback",
data:{
"files":files,
"appId":contentForm.appId.value,
"fileUUIDs":fileUUIDs
},
success: function (data) {
}
});
java 文件上传下载的更多相关文章
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
- Java文件上传下载原理
文件上传下载原理 在TCP/IP中,最早出现的文件上传机制是FTP.它是将文件由客户端发送到服务器的标准机制. 但是在jsp编程中不能使用FTP方法来上传文件,这是由jsp运行机制所决定的 文件上传原 ...
- java文件上传下载
文件上传首先要引入两个核心包 commons-fileupload-1.2.1.jar commons-io-1.4.jar 下面是对文件上传和下载的一些代码做的一个简单封装,可以方便以后直接使用[使 ...
- java文件上传下载组件
需求: 支持大文件批量上传(20G)和下载,同时需要保证上传期间用户电脑不出现卡死等体验: 内网百兆网络上传速度为12MB/S 服务器内存占用低 支持文件夹上传,文件夹中的文件数量达到1万个以上,且包 ...
- java 文件上传 下载 总结
首先引入2个jar ![](http://images2017.cnblogs.com/blog/1128666/201711/1128666-20171101145630498-2084371020 ...
- java文件上传下载解决方案
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...
- [Java] 文件上传下载项目(详细注释)
先上代码,最上方注释是文件名称(运行时要用到) FTServer.java /* FTServer.java */ import java.util.*; import java.io.*; publ ...
- java文件上传下载 使用SmartUpload组件实现
使用SmartUpload组件实现(下载jsmartcom_zh_CN.jar) 2017-11-07 1.在WebRoot创建以下文件夹,css存放样式文件(css文件直接拷贝进去),images存 ...
- [java]文件上传下载删除与图片预览
图片预览 @GetMapping("/image") @ResponseBody public Result image(@RequestParam("imageName ...
随机推荐
- NumPy之:数据类型
目录 简介 数组中的数据类型 类型转换 查看类型 数据溢出 简介 我们知道Python中有4种数字类型,分别是int,float,bool和complex.作为科学计算的NumPy,其数据类型更加的丰 ...
- 痛!痛!痛!我们的好兄弟Git,一路走好!
文章是正经文章,标题不要在意,哈哈 Git作为现在主流的版本控制工具,但是如何在软件开发过程中进行合理的分支管理是一个见仁见智的问题. 接下来我会对比下现有的几种比较普遍的分支管理方式和之前在阿里时候 ...
- ESXI的使用
一台物理裸机服务器装上了ESXI就有了灵魂 vmware esxi的安装 多网段站群服务器 参考教程 安装ESXi VMware ESXI 6.5安装教程 物理机下安装 VMware ESXi 6.7 ...
- jumpserver2
测试环境 CPU: 64位双核处理器 内存: 4G DDR3 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 环境 系统: CentOS 7 IP: 192.168 ...
- React-列表 & Key
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- 前端Excel表格导入导出,包括合并单元格,表格自定义样式等
表格数据导入 读取导入Excel表格数据这里采用的是 xlsx 插件 npm i xlsx 读取excel需要通过 XLSX.read(data, {type: type}) 方法来实现,返回一个叫W ...
- Git 无法添加文件夹下的文件
尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>... ...
- Python | Pandas数据清洗与画图
准备数据 2016年北京PM2.5数据集 数据源说明:美国驻华使馆的空气质量检测数据 数据清洗 1. 导入包 import numpy as np import matplotlib.pyplot a ...
- MySQL redo与undo日志解析
前言: 前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍.相对于其他几种日志而言, redo log 和 undo log 是更 ...
- mysql 连表不要用varchar和int这两种不相同的类型做比较
他会默认你123abc等于123 说多了都是泪啊