繁体   English   中英

将具有图片上传功能的ASP.NET Web Form应用程序转换为Azure

[英]Convert ASP.NET Web Form App with Image Uploads to Azure

因此,我正在努力将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

我找到了一个代码摘录,它将从ImageResizer( link )输出的内存流中填充一个blob。

但是,我不清楚如何在我的网站中嵌入/引用这些图像。 目前,我正在这样做(例如):

HeaderImage.Src = String.Format("/Images/Headers/{0}.jpg", .HeaderImage.ToString())

我想我可以在Blob中包含完整的URL前缀,但这似乎是个坏主意(在本地运行以进行测试时会破坏某些功能)。

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

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

我想问题是:最简单的方法是什么? 我一直在与各种选择盘旋。

谢谢!

我最终使用了在解决方案中添加适当的URL前缀以到达Blob存储的解决方案。 为了使其在本地和远程都能正常工作,我添加了一个转换:

<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

虽然不完全优雅,但它相当适合我的目的,并且很容易实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM