Wednesday, 15 January 2014

asp.net - FileLoadException when uploading a file to azure blob storage -



asp.net - FileLoadException when uploading a file to azure blob storage -

i want upload image emulator azure blob storage business relationship (devstoreaccount1). index.html code:

<!doctype html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>app</title> </head> <body> <div id="body"> <form name="form1" method="post" action="api/photo" enctype="multipart/form-data"> <div> <label> browse file </label> <input name="myfile" type="file" /> </div> <div> <input type="submit" value="upload" /> </div> </form> </div> </body> </html>

and post method of web api controller

public httpresponsemessage post() { // retrieve storage business relationship connection-string cloudstorageaccount storageaccount = cloudstorageaccount.parse( cloudconfigurationmanager.getsetting("cloudstorageconnectionstring")); // create blob client cloudblobclient blobclient = storageaccount.createcloudblobclient(); // retrieve reference container // container name must utilize lower case cloudblobcontainer container = blobclient.getcontainerreference("mycontainer"); // create container if doesn't exist container.createifnotexists(); // enable public access blob var permissions = container.getpermissions(); if (permissions.publicaccess == blobcontainerpublicaccesstype.off) { permissions.publicaccess = blobcontainerpublicaccesstype.blob; container.setpermissions(permissions); } // check if request contains multipart/form-data. if (!request.content.ismimemultipartcontent()) { throw new httpresponseexception(httpstatuscode.unsupportedmediatype); } httpresponsemessage result = null; var httprequest = httpcontext.current.request; if (httprequest.files.count > 0) { var docfiles = new list<string>(); foreach (string file in httprequest.files) { var postedfile = httprequest.files[file]; var filename = postedfile.filename; var blob = container.getblockblobreference(filename); var filepath = httpcontext.current.server.mappath("~/" + filename); postedfile.saveas(filepath); docfiles.add(filepath); using (var filestream = file.openread(filepath)) { blob.uploadfromstream(filestream); } file.delete(filename); } result = request.createresponse(httpstatuscode.created, docfiles); } else { result = request.createresponse(httpstatuscode.badrequest); } homecoming result; }

so when run server , seek upload image stored in file system, application throws exception:

eccezione di tipo 'system.io.fileloadexception' in microsoft.windowsazure.storage.dll non gestita nel codice utente

ulteriori informazioni: impossibile caricare il file o l'assembly 'microsoft.data.services.client, version=5.6.0.0, culture=neutral, publickeytoken=31bf3856ad364e35' o una delle relative dipendenze. la definizione di manifesto dell'assembly specificato non corrisponde al riferimento all'assembly. (eccezione da hresult: 0x80131040)

at point:

container.createifnotexists();

please help me prepare or find method upload image blob storage using rest api.

instead of using:

container.createifnotexists();

try using:

if (!container.exists()) container.create();

asp.net azure-storage-blobs

No comments:

Post a Comment