Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将带有图像上载的ASP.NET Web表单应用程序转换为Azure_Asp.net_Azure_Imageresizer - Fatal编程技术网

将带有图像上载的ASP.NET Web表单应用程序转换为Azure

将带有图像上载的ASP.NET Web表单应用程序转换为Azure,asp.net,azure,imageresizer,Asp.net,Azure,Imageresizer,因此,我正在努力将一个web应用程序移动到Azure,唯一让我感到困惑的是如何处理图像上传。目前,我正在使用ImageResizer处理上传并将其保存到一个目录: Protected Function DoHeaderUpload() As Guid? If HeaderUploadControl.HasFile Then If HeaderUploadControl.PostedFile.ContentType.StartsWith("image/") Then

因此,我正在努力将一个web应用程序移动到Azure,唯一让我感到困惑的是如何处理图像上传。目前,我正在使用ImageResizer处理上传并将其保存到一个目录:

    Protected Function DoHeaderUpload() As Guid?
    If HeaderUploadControl.HasFile Then
        If HeaderUploadControl.PostedFile.ContentType.StartsWith("image/") Then
            If HeaderUploadControl.PostedFile.ContentLength < 3145728 Then ' 3MB max size
                Dim myFileGuid = System.Guid.NewGuid()
                Dim i As ImageResizer.ImageJob = New ImageResizer.ImageJob(HeaderUploadControl.PostedFile,
                                                                           "~/Images/Headers/" & myFileGuid.ToString() & ".jpg",
                                                                           New ImageResizer.Instructions("height=100;format=jpg;mode=crop"))
                i.Build()
                Return myFileGuid
            Else
                HeaderUploadError.Text = "<br>File exceeds 3MB maximum size"
                HeaderUploadError.IsValid = False
            End If
        Else
            HeaderUploadError.Text = "<br>Only image uploads are supported"
            HeaderUploadError.IsValid = False
        End If
    End If
End Function
我想我可以只在blob中包含完整的URL前缀,但这似乎不是一个好主意(在本地运行测试时会破坏它)

我是否可以使用指向Azure文件共享而不是Azure Blob的虚拟路径

我看到AzureReader2用于ImageResizer,这很诱人,但它似乎非常昂贵。这似乎也是一个非常简单的解决方案,因为它看起来会自动将带有特定前缀的引用重定向到Azure Blob位置

我想问题是:最简单的方法是什么?我一直在考虑各种各样的选择


谢谢

我最终使用了一种解决方案,在该解决方案中,我将适当的URL作为前缀,以访问blob存储。为了使其在本地和远程工作,我添加了一个转换:

<appSettings>
   <add key="BlobURLPrefix" value="http://myapp.blob.core.windows.net"
        xdt:Locator="Match(key)"
        xdt:Transform="SetAttributes(value)"/>
</appSettings>
不完全优雅,但它相当适合我的目的,并且很容易实现

<appSettings>
   <add key="BlobURLPrefix" value="http://myapp.blob.core.windows.net"
        xdt:Locator="Match(key)"
        xdt:Transform="SetAttributes(value)"/>
</appSettings>
FullUrl = ConfigurationManager.AppSettings("BlobURLPrefix") + ImagePath