我是webforms的MVC新手,我正在尝试将图像上传到我的azure存储容器中。我已经根据需要上传和调整了图片,但是有些图片正在以错误的方向上传,例如它们是以横向而非肖像上传的。
我用谷歌搜索了这个,但似乎找不到其他人有这个问题。
我必须上传的代码如下......
提前致谢
string accountName = "xxxxxxxxxxx";
string accountKey = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyy";
try
{
if (file != null)
{
StorageCredentials creds = new StorageCredentials(accountName, accountKey);
CloudStorageAccount account = new CloudStorageAccount(creds, useHttps: true);
CloudBlobClient client = account.CreateCloudBlobClient();
CloudBlobContainer sampleContainer = client.GetContainerReference("uploadedimages");
sampleContainer.CreateIfNotExists();
CloudBlockBlob blob = sampleContainer.GetBlockBlobReference(file.FileName);
using (Stream file1 = file.InputStream)
{
WebImage img = new WebImage(file.InputStream);
if (img.Width > 300)
img.Resize(300, 300);
byte[] bytes = img.GetBytes();
Stream stream = new MemoryStream(bytes);
blob.UploadFromStream(stream);
}
string userIdValue = getUserId();
if (ModelState.IsValid)
{
YourDayEntities6 context = new YourDayEntities6();
context.CreateDayByDate(model.DayDate, blob.Uri.ToString(), model.DayDesc, userIdValue);
}
}
}
catch (Exception e)
{
throw new Exception(string.Format("Error{0}", e.Message));
}
return RedirectToAction("GetAllDaysByDate");
答案 0 :(得分:0)
我见过这个问题的大部分时间都不是由于存储,Azure存储会保存文件字节。
图像方向是EXIF information的一部分,它包含在文件二进制文件中。
如果您使用客户端(JS)库管理上传,您可以在其文档中查找并查看是否可能删除或修改EXIF信息,某些库甚至有更改它的方法。
手机拍摄的图像存在一些问题,报告错误的EXIF信息(横向而不是纵向或反面),为了解决此问题,您需要在上传之前处理EXIF信息。可能解决此问题的一些插件是blueimp Javascript Load Image,ng-file-upload for AngularJS。