无法使用 java api for azure 下载 PDF 文件



如何从 azure 文件存储下载 pdf 文件。我知道有一个方法downloadText()但它损坏了pdf文件。我已经编写了代码以在 azure 上下载上传的文件,并且我使用了downloadText()方法,但它在这里不起作用。

但是,它会下载pdf文件,但显示文件已损坏或损坏。

我正在尝试执行的代码示例:

CloudFileDirectory sampleDir = rootDir.getDirectoryReference(path);
                        //Get a reference to the file you want to download
                        CloudFile file = sampleDir.getFileReference(fileStorageBean.getUniqueFileIdentifier());
                        //get file contents from azure file.
                        String fileContent = file.downloadText();
                        ESAPI.httpUtilities().setHeader(response, "Content-Disposition","attachment;");
                        response.setContentType(fileStorageBean.getMimeType());
                        response.setContentLength(file.getStreamWriteSizeInBytes());
                InputStream in = new ByteArrayInputStream(fileContent.getBytes());
您可以使用

file.downloadToFile方法将pdf文件从Azure File Storage下载到本地。

示例代码:

CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
CloudFileClient fileClient = storageAccount.createCloudFileClient();
CloudFileShare share = fileClient.getShareReference("test");
CloudFileDirectory rootDir = share.getRootDirectoryReference();
CloudFile file = rootDir.getFileReference("testFile.pdf");
File sourceFile = new File("E:\AzureFile\f.pdf");
file.downloadToFile(sourceFile.getAbsolutePath());

或者您可以使用file.download方法将文件下载到流。

OutputStream outs=response.getOutputStream();
file.download(outs);

希望对您有所帮助。

最新更新