bir CloudBlockBlob için Http/StreamContent yükleme: Azure Blob Depolama - Ben gibi Açısal kullanarak bir POST isteği ile benim WebAPI Denetleyicisi bir PDF dosyası gönderiyorum WebAPI Kontrolörü
$scope.upload = Upload.upload({
url: "../api/Locker/Upload", // webapi url
method: "POST",
file: controllerFile,
})
hangi benim POST yöntemi benim Ben buna StreamContent tiptedir diyor fileData yazarken o results.Contents [0] tip HttpContent arasında ancak komut penceresi içinde olduğunu söylüyor
public async Task<HttpResponseMessage> Post()
{
HttpRequestMessage request = this.Request;
if (!request.Content.IsMimeMultipartContent())
{
request.CreateResponse(HttpStatusCode.UnsupportedMediaType);
}
var result = await Request.Content.ReadAsMultipartAsync<CustomMultipartFormDataProvider>(new CustomMultipartFormDataProvider());
string fileName = result.FileData[0].Headers.ContentDisposition.FileName;
var fileData = result.Contents[0];
}
şu şekildedir: kontrolör ben o dosyanın StreamContent olsun.
Azure Blob Storage'a bu dosyada veri yüklemeye çalışıyorum, böylece daha sonra GET isteğini kullanarak alabiliyorum, ancak sorun yaşıyorum.
private async void UploadToBlob(CloudBlobContainer container, string blobId, HttpContent fileData)
{
CloudBlockBlob block = container.GetBlockBlobReference(blobId);
block.UploadFromStream(fileData);
}
hatası block.UploadFromStream üzerinde fileData elbette Akış olmadığı için: Ben şaşırıp
//in post method
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(blobConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(blobContainer);
await container.CreateIfNotExistsAsync();
string blobId = Guid.NewGuid().ToString();
UploadToBlob(container, blobId, fileData);
ve yöntemi. Ben türü içeriği varlık ile bir HTTP Yanıtı bekliyorum eğer
Ne yapabilirim: arraybuffer ben gibi benim web uygulaması dosyayı açığa böylece: bekliyoruz (
//angular get request
.success(function (data, status, headers, config) {
// file is uploaded successfully
console.log(data);
var fileBack = new Blob([(data)], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(fileBack);
}