0
我正在使用以下代码从s3存储桶中的对象获取内容。我能够将数据复制到本地文件中,但文件需要“下载”并且必须显示在浏览器的下载列表中。 我搜索了一下这个和凸轮知道这与response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
我试图补充一点,但不知何故无法让它工作。我的理解是,源代码必须是转换为流的服务器上的文件。但我以输入流的形式得到s3内容。如何在浏览器中将其作为文件下载? 下面是除了文件读取部代码到目前为止,我已经试过java - 使用servlet下载输入流
AmazonS3 s3 = new AmazonS3Client(new ProfileCredentialsProvider());
S3Object fetchFile = s3.getObject(new GetObjectRequest(bucketname, fileloc));
final BufferedInputStream i = new BufferedInputStream(fetchFile.getObjectContent());
response.setContentType("application/json");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
ServletOutputStream sos = response.getOutputStream();
int bytesread = i.read();
while(bytesread!=-1)
{
sos.write(bytesread);
bytesread = i.read();
}
if(i!= null)i.close();
if(sos!= null)sos.close();
嗨,谢谢!但这并没有什么区别,我也没有得到任何异常 – lavy
嗨,还有其他的见解吗?我仍然坚持这一个:( – lavy