Quero carregar arquivos do armazenamento local para o contêiner de blob do Azure. Abaixo está o código PHP que está falhando.
Estou usando o XAMPP como um servidor local. Eu criei uma página da web local que carrega arquivos para o servidor MySQL local e um contêiner no armazenamento de blobs do Azure.
O código abaixo falha quando tento fazer upload de um arquivo. (no entanto, se eu remover a parte do código que carrega para o blob do Azure, o código funcionará perfeitamente e os arquivos serão carregados para o servidor MySQL local.) Estou enfrentando um problema ao carregar os arquivos para o Blob do Azure.
<?php
require_once "vendor/autoload.php";
use MicrosoftAzure\Storage\Blob\BlobRestProxy;
use MicrosoftAzure\Storage\Common\ServiceException;
// If the upload button is clicked ...
if (isset($_POST['upload'])) {
//upload to azure blob container
//Enter deployment key
$connectionString = "";
$blobClient = BlobRestProxy::createBlobService($connectionString);
$file_name = $_FILES['myFile']['name'];
$tmp = explode('.' , $file_name);
$extension = end($tmp);
$file_name = mt_rand().".".$entension;
$file_tmp = $FILES['myFile']['tmp_name'];
$containerName = 'new'; //Enter Container Name
$keyname = $file_name;
$content = fopen($file_tmp, "r");
$blobClient = BlobRestProxy::createBlobService($connectionString);
#upload file as a block blob
//*upload blob*
$blobClient->createBlockBlob($containerName, $file_name, $content);
echo "Blob upload successful";
//upload to local mysql server
$filename = $_FILES["uploadfile"]["name"];
$tempname = $_FILES["uploadfile"]["tmp_name"];
$folder = "image/".$filename;
$db = mysqli_connect("localhost", "root", "", "siddemo");
//Get all the submitted data from the form
$sql = "INSERT INTO images (filename) VALUES ('$filename')";
// Execute query
mysqli_query($db, $sql);
// Now let's move the uploaded image into the folder: image
if (move_uploaded_file($tempname, $folder)) {
$msg = "Image uploaded successfully";
}else{
$msg = "Failed to upload image";
}
}
$result = mysqli_query($db, "SELECT * FROM images");
?>
Resumo minhas sugestões como abaixo
Se quisermos carregar o arquivo para o Armazenamento de Blob do Azure com o SDK do Blob do PHP do Azure, consulte as etapas a seguir
{
"require": {
"microsoft/azure-storage-blob": "*"
}
}
Baixe composer.phar na raiz do seu projeto.
Instalar sdk
php composer.phar install
// name of the uploaded file
$filename = $_FILES['myfile']['name'];
// the physical file on a temporary uploads directory on the server
$file = $_FILES['myfile']['tmp_name'];
$size = $_FILES['myfile']['size'];
$connectionString="";
$blobClient = BlobRestProxy::createBlobService($connectionString);
$content = fopen($file, "r");
//Upload blob
$containerName = "upload";;
$blobClient->createBlockBlob($containerName, $filename, $content);
echo "File uploaded Azure Blob successfully";
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras