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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • busybox最新版(busybox apk)

    把”busybox-armv6l”重命名为”busybox”;将busybox传入手机的SD卡,打开terminal(Linux,Mac)或cmd(Windows)adbpush~/Desktop/busybox/mnt/sdcard其中的~/Desktop请根据自己的情况替换成正确的路径输入以下命令,为了在/system目录写入文件adbshellsumount-oremount,r…

    2022年4月12日
    88
  • vue项目更新后清除浏览器缓存

    vue项目更新后清除浏览器缓存项目场景:vue项目更新后清除浏览器缓存解决方案:build/webpack.prod.conf.js里打包的文件路径添加时间戳constVersion=newDate().getTime()//获取当前时间戳output:{path:config.build.assetsRoot,//添加当前时间戳Version到打包的js文件中filename:utils.assetsPath(‘js/[name].[chunk..

    2022年7月18日
    16
  • Mysql主从配置,实现读写分离

    Mysql主从配置,实现读写分离

    2021年11月7日
    36
  • vim编辑模式、vim命令模式

    vim编辑模式、vim命令模式

    2022年3月13日
    46
  • ubuntu 局域网传输文件

    ubuntu 局域网传输文件scp[可选参数]file_sourcefile_target参数说明:-1:强制scp命令使用协议ssh1 -2:强制scp命令使用协议ssh2 -4:强制scp命令只使用IPv4寻址 -6:强制scp命令只使用IPv6寻址 -B:使用批处理模式(传输过程中不询问传输口令或短语) -C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p:保留原文件的修改时间,访问时间和访问权限。 -q:不显示传输进度条。 -r:递归复制整个目录。 -v:详细方.

    2022年5月24日
    39
  • android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…

    android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…在上一篇文章中,我整理并测试了六种来自国际力量的Android浏览器,包括流行的Chrome,具有丰富扩展功能的Firefox,具有隐私和安全性的FirefoxFocus,具有悠久历史的Opera,以及后来的MicrosoftEdge,Yandex除了主要国际制造商生产的产品外,国内开发商还致力于Android浏览器类别。他们希望在保持简单设计的基础上,寻求提供更多差异化的功能。这次我选择了五…

    2022年5月15日
    167

发表回复

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

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