AzurePHP:通过对话上传到Blob?

时间:2012-01-06 14:03:30

标签: php file-upload azure upload

我是PHP的新手,所以这可能是一项非常重要的任务:

现在我正在从脚本中将文件上传到blob,而不允许用户选择特定文件:

$result = $storageClient->putBlob('testcontainer', 'example.txt', 'C:/example.txt');
// Syntax: putBlob (ContainerName, NameInStorage, FileLocation)

我想为用户提供三个输入框,以便他/她可以一次将三个文件上传到blob。像这样:

//GetFile1Location();
//GetFile2Location();
//GetFile3Location();


$result = $storageClient->putBlob('testcontainer', 'example.txt', 'File1Location');
$result = $storageClient->putBlob('testcontainer', 'example.txt', 'File2Location');
$result = $storageClient->putBlob('testcontainer', 'example.txt', 'File3Location');
// Syntax: putBlob (ContainerName, NameInStorage, FileLocation)

我查看了w3schools文件上传教程,但我认为我需要的是一种选择文件并拉动其路径的方法; putBlob似乎负责实际上传。我只是在“GetFileLocation”操作上遇到了一些麻烦。

任何提示都会非常感激。

1 个答案:

答案 0 :(得分:2)

我可能正在约会自己(以及我的PHP技能),但它应该只是像平常一样进行文件选择/上传。然后,您只需通过已经布局的代码将文件从其临时位置流式传输到blob容器中。您可以在http://www.tizag.com/phpT/fileupload.php

找到执行文件上传的示例

我会在周末为你编写一个代码示例(今天没时间)。

1月20日更新 对不起,花了这么长时间,但这是承诺的代码示例。

require_once('Microsoft/AutoLoader.php');

if (!empty($_FILES['userfile']['name']))
{
    $container = 'sampleblobs';
    $filename = "somefolder/".$_FILES['userfile']['name'];

    $blobStorageClient = new Microsoft_WindowsAzure_Storage_Blob();
    $blobStorageClient->createContainerIfNotExists($container);

    $blobStorageClient->putBlob(
        $container, // container name
        $filename,  // name in storage
        $_FILES['userfile']['tmp_name'],  // object to upload
        array('createdby' => 'CodeMash', 'FileType' => 'jpg') // metadata
    );

    echo "<br>file uploaded.";
}