Как я могу загрузить файл с C#? Мне нужно загрузить файл из диалогового окна.Загрузить один файл в хранилище Blob Azure
14
A
ответ
2
мы можем использовать BackgroundUploader класса, то мы должны обеспечить StorageFile объекта и Uri: Требуемые Namespaces:
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Networking.BackgroundTransfer;
using Windows.Storage.Pickers;
using Windows.Storage;
Процесс выглядит так: Uri определяется с помощью строковое значение, предоставленное через поле ввода пользовательского интерфейса, и желаемый файл для загрузки, представленный объектом StorageFile, возвращается, когда конечный пользователь выбрал файл через пользовательский интерфейс, предоставленный операцией PickSingleFileAsync
Uri uri = new Uri(serverAddressField.Text.Trim());
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add("*");
StorageFile file = await picker.PickSingleFileAsync();
и потом:
BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("Filename", file.Name);
UploadOperation upload = uploader.CreateUpload(uri, file);
// Attach progress and completion handlers.
await HandleUploadAsync(upload, true);
Thats Все
28
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("StorageKey");
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
blockBlob.UploadFromStream(fileStream);
}
см here о необходимых SDK и ссылки
я думаю, что это то, что вам нужно
1
Вот полный метод.
[HttpPost]
public ActionResult Index(Doctor doct, HttpPostedFileBase photo)
{
try
{
if (photo != null && photo.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(photo.FileName);
doct.Image = fileName.ToString();
CloudStorageAccount cloudStorageAccount = DoctorController.GetConnectionString();
CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference("images");
string imageName = Guid.NewGuid().ToString() + "-" +Path.GetExtension(photo.FileName);
CloudBlockBlob BlockBlob = cloudBlobContainer.GetBlockBlobReference(imageName);
BlockBlob.Properties.ContentType = photo.ContentType;
BlockBlob.UploadFromStreamAsync(photo.InputStream);
string imageFullPath = BlockBlob.Uri.ToString();
var memoryStream = new MemoryStream();
photo.InputStream.CopyTo(memoryStream);
memoryStream.ToArray();
memoryStream.Seek(0, SeekOrigin.Begin);
using (var fs = photo.InputStream)
{
BlockBlob.UploadFromStreamAsync(memoryStream);
}
}
}
catch (Exception ex)
{
}
return View();
}
где метод getconnectionstring это.
static string accountname = ConfigurationManager.AppSettings["accountName"];
static string key = ConfigurationManager.AppSettings["key"];
public static CloudStorageAccount GetConnectionString()
{
string connectionString = string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", accountname, key);
return CloudStorageAccount.Parse(connectionString);
}
Смежные вопросы
- 1. Загрузить файл, хранящийся в хранилище Azure blob
- 2. Как загрузить файл формы Azure BLOB-хранилище
- 3. Загрузите файл в хранилище Azure Blob
- 4. загружать файл 80GB в хранилище azure blob
- 5. Загрузить файл в Blob Azure
- 6. Как загрузить файл в хранилище Azure blob из MVC-представления
- 7. Загрузить контейнер на хранилище Azure Blob
- 8. Сохраните файл .txt в хранилище Azure Blob.
- 9. Загрузить и загрузить изображения в хранилище Azure Blob
- 10. Загрузить файл csv в Azure BLOB Storage
- 11. Загрузка объекта Bitmap в хранилище Azure blob
- 12. Вручную загружать файлы в хранилище azure blob
- 13. Можно ли добавлять байты в blob в хранилище Azure Blob?
- 14. Загрузите файл изображения в хранилище azure blob из js
- 15. Как загрузить файл BACPAC в Blob в Azure
- 16. Как загрузить VHD в Azure BLOB-хранилище параллельно?
- 17. Как загрузить изображение в хранилище azure blob с помощью javascript
- 18. Как загрузить в хранилище Azure Blob без перезаписи?
- 19. Загрузить изображение в хранилище Azure Blob по адресу
- 20. Azure - это один «блок blob» рассматривается как один файл?
- 21. Загрузить файл в Azure Blob Storage прямо из браузера?
- 22. Загрузить BLOB от Azure
- 23. log4net с RollingFileAppender в хранилище Azure/Blob
- 24. Хранилище Azure blob: невозможно загрузить блоб размером 0
- 25. Можно ли разархивировать файл в хранилище Azure Blob?
- 26. Создать файл в хранилище Azure Blob с помощью UploadText
- 27. Как обновить файл Последняя измененная дата в хранилище Azure Blob
- 28. Файл доступа в хранилище Blob из кластера
- 29. Является ли Azure Blob хранилище транзакционным?
- 30. Как работает разделитель в хранилище Azure Blob?
Заканчивать [Blob утилита передачи] (https://blobtransferutility.codeplex.com/) его большой проект, все в C#. Это покажет вам, как это сделать. – paqogomez
Вот обертка C# на [GitHub] (https://github.com/AgentTy/General.CDN), она работает с блоками Azure или Amazon S3 и поддерживает локальное кэширование и проверку версий. –
Этот класс [C# Azure Blob Storage Manager] (http://cc.davelozinski.com/code/csharp-azure-blob-storage-manager-class) - довольно хороший файл базового класса, если кто-то нуждается в классе для своих C#. –