C# MVC图像上载-上载方向不正确

C# MVC图像上载-上载方向不正确,c#,asp.net-mvc,azure,image-processing,azure-storage-blobs,C#,Asp.net Mvc,Azure,Image Processing,Azure Storage Blobs,我是来自webforms的MVC新手,我正在尝试将图像上载到我的azure存储容器。我有图片上传和调整大小,因为我想,但有些图片被上传在错误的方向,例如,他们被上传在横向而不是纵向 我在谷歌上搜索过这个问题,但似乎找不到其他人有这个问题 我的代码我必须上传如下 提前谢谢 string accountName = "xxxxxxxxxxx"; string accountKey = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyy";

我是来自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");

大多数情况下,我看到这个问题不是由于存储,Azure存储将保存文件字节

图像方向是二进制文件中包含的图像方向的一部分

如果您使用客户机(JS)库管理上传,您可以在它的文档中查找,看看是否有可能EXIF信息被它删除或修改,一些库甚至有方法修改它


手机拍摄的图像报告了错误的EXIF信息(横向而非纵向或反向),因此存在一些问题。要解决此问题,您需要在上传之前处理EXIF信息。一些可能解决此问题的插件是。

我看到的大多数情况下,此问题不是由存储引起的,Azure存储将保存文件字节

图像方向是二进制文件中包含的图像方向的一部分

如果您使用客户机(JS)库管理上传,您可以在它的文档中查找,看看是否有可能EXIF信息被它删除或修改,一些库甚至有方法修改它


手机拍摄的图像报告了错误的EXIF信息(横向而非纵向或反向),因此存在一些问题。要解决此问题,您需要在上传之前处理EXIF信息。一些可能会解决这个问题的插件是,。

好的,只是为了确保我已经问了一个明显的问题-你确定它们最初不是以它们上传的格式吗?如何确定它们的原始方向?您是在编辑器中打开它们,还是在资源管理器中查看它们(一些程序会根据最长轴重新定向图像,使它们成为纵向或横向),它们看起来就像我的计算机上的纵向。我也尝试过从手机摄像头上传图像,以纵向拍摄,存储在手机的纵向中,但上传后以横向显示。这可能不是一个好的“方向”定义。尝试在类似“Paint.net”(此处)的程序中打开图像,并查看底层的宽度/高度-Paint.net将以其本机格式打开图像,并且不会尝试对其重新定向。您是否使用某个客户端(JS)库来管理卸载?Azure存储本身对其上载的内容一无所知,所以它不能做像旋转图片这样的事情。它只是按原样抓取字节并将它们放入Azure中@PhillipH可能有正确的想法来更仔细地检查图像源。好的,只是为了确保我问了一个明显的问题-你确定它们不是最初上传的格式吗?如何确定它们的原始方向?您是在编辑器中打开它们,还是在资源管理器中查看它们(一些程序会根据最长轴重新定向图像,使它们成为纵向或横向),它们看起来就像我的计算机上的纵向。我也尝试过从手机摄像头上传图像,以纵向拍摄,存储在手机的纵向中,但上传后以横向显示。这可能不是一个好的“方向”定义。尝试在类似“Paint.net”(此处)的程序中打开图像,并查看底层的宽度/高度-Paint.net将以其本机格式打开图像,并且不会尝试对其重新定向。您是否使用某个客户端(JS)库来管理卸载?Azure存储本身对其上载的内容一无所知,所以它不能做像旋转图片这样的事情。它只是按原样抓取字节并将它们放入Azure中@PhillipH可能有正确的想法来更仔细地检查图像源。好的,谢谢你,我会看看我是否能找到上面提到的关于EXIF信息的任何信息。我没有使用任何JS库来上传,只是使用了一个文件输入控件和上面的代码。好的,谢谢。我会看看我是否能找到上面提到的EXIF信息。我没有使用任何JS库来上传,只是使用了一个文件输入控件和上面的代码。