Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在web浏览器中打开.pdf文件而不是下载?_Java_Google Cloud Platform_Google Cloud Storage - Fatal编程技术网

Java 是否可以在web浏览器中打开.pdf文件而不是下载?

Java 是否可以在web浏览器中打开.pdf文件而不是下载?,java,google-cloud-platform,google-cloud-storage,Java,Google Cloud Platform,Google Cloud Storage,现在,我正在使用签名url技术从GCS获取文件 BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, gcsFolderPrefix + fullFileName)).build(); URL url = storage.signUrl(blobInfo, 15, TimeUnit.MINUTES,Storage.SignUrlOption.withV4Signature()); 在浏览器中点击生成的签名url后,该url将

现在,我正在使用签名url技术从GCS获取文件

BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, gcsFolderPrefix + fullFileName)).build();
URL url = storage.signUrl(blobInfo, 15, TimeUnit.MINUTES,Storage.SignUrlOption.withV4Signature());
在浏览器中点击生成的签名url后,该url将被下载,但我需要打开该文件,我尝试添加响应标题,如下所示:

response.addHeader(HttpHeaders.CONTENT_TYPE, "multipart/form-data");
response.addHeader(HttpHeaders.CONTENT_DISPOSITION,"inline;filename=" + fileId.toString()+".pdf");

在生成SignedUrl之前,您需要在GCS中更新blob的元数据

BlobInfo blobinfo = BlobInfo.newBuilder(BlobId.of(bucketName, gcsFolderPrefix + fullFileName))
//Add the correct content type
.setContentType("application/pdf")
.build();

// Update the Blob
storage.update(blobinfo);

URL url = storage.signUrl(blobInfo, 15, TimeUnit.MINUTES,Storage.SignUrlOption.withV4Signature());


这回答了你的问题吗?不,在浏览器中点击已签名的url后,它将被直接下载,而不是打开!!!!。更新blob对象后,它开始工作,非常感谢您