- java web中下载文件时,我们一般设置Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.
- Content-disposition: inline; filename=1502849449726.jpg表示浏览器内嵌显示一个文件
- Content-disposition: attachment; filename=1502849449726.xlsx表示会下载文件,如火狐浏览器中
使用阿里云oss上传文件时如何设置对应的中文下载名称
- 上传文件时设置请求头Content-disposition属性信息:
OSS client = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setCacheControl("no-cache");
objectMetadata.setHeader("Pragma", "no-cache");
String downloadFileNameTemplate = "attachment; filename=\"=?UTF8?B?%s?=\"";
String base64FileName = new String(Base64.getEncoder().encode(downloadFileName.getBytes(StandardCharsets.UTF_8)));
objectMetadata.setContentDisposition(String.format(downloadFileNameTemplate, base64FileName));
PutObjectResult result = client.putObject(bucketName, fileName, instream, objectMetadata);