Come posso caricare un file con C#? Ho bisogno di caricare un file da una finestra di dialogo.Carica un singolo file su Archiviazione BLOB Azure
14
A
risposta
2
possiamo usare BackgroundUploader classe, quindi abbiamo bisogno di fornire StorageFile oggetto e un Uri: spazi dei nomi necessari:
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;
Il processo è simile a questo: Uri è definito utilizzando un valore di stringa fornito tramite un campo di input dell'interfaccia utente e il file desiderato per il caricamento, rappresentato da un oggetto StorageFile, viene restituito quando l'utente finale ha selezionato un file tramite l'interfaccia utente fornita dall'operazione PickSingleFileAsync
Uri uri = new Uri(serverAddressField.Text.Trim());
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add("*");
StorageFile file = await picker.PickSingleFileAsync();
e poi:
BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("Filename", file.Name);
UploadOperation upload = uploader.CreateUpload(uri, file);
// Attach progress and completion handlers.
await HandleUploadAsync(upload, true);
questo è tutto
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);
}
vedere here su SDK e riferimenti
penso che sia quello che ti serve necessario
1
Ecco il metodo completo.
[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();
}
in cui il metodo GetConnectionString è questo.
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);
}
Problemi correlati
- 1. Carica per Azure Blob archiviazione con Shared Access Key
- 2. cache la connessione ad Azure Blob archiviazione
- 3. Servizio BLOB di archiviazione Azure vs. Servizio file
- 4. Servizio file di Azure e archiviazione BLOB: prestazioni ottimali
- 5. Accesso archiviazione blob Azure utilizza bash, ricciolo
- 6. Come pulire un contenitore BLOB di archiviazione di Azure?
- 7. Archiviazione BLOB di Azure: generazione automatica di un nome blob univoco
- 8. Limitazione e filtro di archiviazione BLOB di Azure
- 9. Opzioni di sicurezza di archiviazione BLOB di Azure in MVC
- 10. Copia di un BLOB di Azure in un altro BLOB in Azure Storage Client 2.0
- 11. Come interrompere un lease su Archiviazione BLOB in Azure con PowerShell?
- 12. Carica file con Archiviazione di Azure utilizzando SAS (firma di accesso condiviso)
- 13. Archiviazione di Azure: file caricati con dimensione zero byte
- 14. Download del file da Azure Blob Storage
- 15. Prestazioni BLOB Azure e Tabella Azure
- 16. Ottenere l'ultimo file modificato da Azure Blob
- 17. Python Azure file di caricamento di archiviazione blob più grande poi 64 MB
- 18. Incremento automatico su Archiviazione tabelle di Azure
- 19. Transazioni di archiviazione Azure
- 20. Archiviazione BLOB di Azure - Prezzi e velocità "All'interno del data center"
- 21. Carica i file nello storage Azure Blob tramite WebApi senza accedere al filesystem locale
- 22. tela Carica HTML5 come un blob
- 23. Come caricare/configurare la pagina default.html per Archiviazione BLOB di Azure?
- 24. Errore caricamento archivio blob Azure
- 25. Come scaricare un file dal browser da Azure Blob Storage
- 26. Carica un file su Skydrive
- 27. Come utilizzare il servizio di archiviazione BLOB da ios?
- 28. Errore di archiviazione BLOB di Azure: le intestazioni di più condizioni non sono supportate
- 29. Archiviazione di Azure: utilizza BLOB dal contenitore privato nel tag <img>
- 30. Come serializzare un oggetto .NET in Azure Blob Storage senza utilizzare un file temporaneo?
Partenza [utilità di trasferimento Blob] (https://blobtransferutility.codeplex.com/) la sua un grande progetto, il tutto in C#. Ti mostrerà come. – paqogomez
Ecco un wrapper C# su [GitHub] (https://github.com/AgentTy/General.CDN), funziona con BLOB di Azure o Amazon S3 e supporta il caching locale e il controllo della versione. –
Questa [C# Azure Blob Storage Manager class] (http://cc.davelozinski.com/code/csharp-azure-blob-storage-manager-class) è un file di classe di base abbastanza buono se qualcuno ha bisogno di una classe per Progetti C#. –