java文件上传下载接口_java 文件上传下载

java文件上传下载接口_java 文件上传下载翻新十年前的老项目,文件上传改为调用接口方式,记录一下子~~~java后台代码://取配置文件中的上传目录@Value(“${uploadPath}”)Stringpath;//文件上传接口@RequestMapping(value=”upload”)@ResponseBodypublicStringgetMobileAuthCode(HttpServletRequestreques…

大家好,又见面了,我是你们的朋友全栈君。

翻新十年前的老项目,文件上传改为调用接口方式,记录一下子~~~

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

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 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(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) {

}

});

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146413.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java商城_国内三款知名java商城系统:shop++、shopnc、javashop浅析

    java商城_国内三款知名java商城系统:shop++、shopnc、javashop浅析在众多商家决定搭建一个独立的网上商城系统时,就开始苦恼,市面上这么多商城系统到底该选哪一个才好呢?我们又如何选到靠谱又实用的商城系统呢?国内三款知名java商城系统最近我也在了解商城系统的应用程序,市面上的商城系统颇为混杂,以下是本人针对国内三款知名java商城系统的(shop++、shopnc、javashop)分析,排名不分先后。SHOP++关注SHOP++有些时间了,从中体验了他们的6.0版…

    2022年7月8日
    20
  • pytorch(8)– resnet101 迁移学习记录

    pytorch(8)– resnet101 迁移学习记录一、前言本篇记录使用pytorch官方resnet101实现迁移学习,迁移学习是当前深度学习领域的一系列通用的解决方案,而不是一个具体的算法模型。Pre-training+fine-tuning(预训练+调参)的迁移学习方式是现在深度学习中一个非常流行的迁移学习方式,有以下3步(1)把预训练模型当做特征提取器:TensorFlow或者Pytorch都有ImageNet上预训练好的模型,将最后一层全连接层(原始的是1000个类别或者更多)改成你自己的分类任务的种类进行输出,或…

    2022年10月6日
    3
  • Yarn安装配置(vsftpd安装配置)

    Yarn介绍:Yarn是facebook发布的一款取代npm的包管理工具。yarn的特点:速度超快。 Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。 超级安全,在执行代码之前,Yarn会通过算法校验每个安装包的完整性。 超级可靠,使用详细、简洁的锁文件格式和明确的安装算法,Yarn能够保证在不同系统上…

    2022年4月15日
    41
  • 群体智能优化算法

    群体智能优化算法群体智能优化算法介绍什么是群体智能优化算法群体智能优化算法的定义群体智能优化算法的原则常见的群体智能优化算法挖坑蚁群算法粒子群优化算法菌群算法蛙跳算法人工蜂群算法总结由于在研究生期间一直研究粒子群优化算法(ParticleSwarmOptimization),所以对其他的一些群体智能优化算法(SwarmIntelligence)也是有一定的了解的,既然自己在这方面还算有一些自己的见解,所以…

    2022年5月10日
    76
  • MQTT服务器搭建

    MQTT服务器搭建1、MQTT是一种消息传输协议,和我们常用的RabbitMq比较类似,不过MQTT我们基本都是用于在物联网(比如说连接边缘计算机采集PLC数据)。2、MQTT通讯模式看下边这张图应该就可以明白。发布者和订阅者提前约定一个主题,当发布者在这个主题下发布任何消息,订阅者就自动接收到了。3、windows搭建MQTT服务器,网上大多资料都是说的客户端,刚入坑的朋友可能就分不清,搞得很懵。我在这里说下我的模式,我租一台阿里服务器,在服务器上搭建MQTT服务,我本地跑一个客户端,用来测试订阅其他客户端给我服务器发

    2022年4月27日
    44
  • Qt学习之QListWidget删除Item

    Qt学习之QListWidget删除Item将QListWidgetItem从QListWidget列表中删除有两种方法可以做到,但也要根据自己的需要进行选择。第一种是QListWidgetItem*takeItem(introw);使用此方法需要知道删除的是第几个Item,并且返回删除的Item指针。第二种是inlinevoidremoveItemWidget(QListWidgetItem*item);需要知道删除

    2022年5月3日
    545

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号