gpt4 book ai didi

php - 如何使用 PHP 将 Azure 存储 blob 下载为本地文件?

转载 作者:行者123 更新时间:2023-12-02 07:50:42 27 4
gpt4 key购买 nike

我想使用 Azure 存储中的文件名下载 Azure 存储 blob 并将其作为文件保存在本地计算机上。我在名为 download.php 的文件中使用此处 ( tutorial link ) 中的步骤,当我转到 download.php 时,我可以在浏览器中看到文件内容。如果我然后在index.php 中放置一个到download.php 的链接,我可以右键单击该链接并“另存为”,然后将文件另存为myfile.doc。然后我就可以成功打开 myfile.doc。

index.php:

echo '<a href="http://myserver/dev/download.php" >Click me</a>';

但是...我想知道的是如何在用户不必右键单击的情况下获得“另存为”链接。另外,我有文件名(来自 Azure 存储),但我不知道如何使用该文件名保存文件。当用户单击链接时,如何使用文件名将文件保存到用户的下载目录中?

最佳答案

为此,我将 index.php 更改为表单:

echo '<form method="post" action="download.php"><div id="divexport">';
echo '<input type="hidden" name="Export" value="coverLetter">';
echo '<input type="submit" id="Export" value="Cover Letter" />';
echo '</div></form>';

然后将 header 信息添加到 download.php,就在 fpassthru 之前

// Create blob REST proxy.
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
$blobfile = "myblob.pdf";
$filename = basename($blobfile);
$ext = new SplFileInfo($filename);
$fileext = strtolower($ext->getExtension());

try {
// Get blob.
$blob = $blobRestProxy->getBlob("document", $blobfile);

if($fileext === "pdf") {
header('Content-type: application/pdf');
} else if ($fileext === "doc") {
header('Content-type: application/msword');
} else if ($fileext === "docx") {
header('Content-type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
} else if($fileext === "txt") {
header('Content-type: plain/text');
}
header("Content-Disposition: attachment; filename=\"" . $filename . "\"");
fpassthru($blob->getContentStream());
}
catch(ServiceException $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/en-us/library/windowsazure/dd179439.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}

关于php - 如何使用 PHP 将 Azure 存储 blob 下载为本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com