如何从 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);
希望对您有所帮助。