繁体   English   中英

将图像从URI上载到Azure BLOB

[英]Upload Image from URI to Azure BLOB

我想将图像从uri postet上传到asp.net mvc5控制器,以使blob存储成为天蓝色。 我已经像这样在HttpPostedFileBase上工作了。 我可以以某种方式从图像uri获取内存流吗?

HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
var imgFile = System.Drawing.Image.FromStream(hpf.InputStream, true, true);
CloudBlockBlob blob = coversContainer.GetBlockBlobReference("img.jpg");
MemoryStream stream = new MemoryStream();
imgFile.Save(stream, ImageFormat.Jpeg);
stream.Position = 0;
blob.UploadFromStream(stream);

所以这就是我设法完成的方式:

public static Image DownloadRemoteImage(string url)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse response;
    try
    {
        response = (HttpWebResponse)request.GetResponse();
    }
    catch (Exception)
    {
        return null;
    }

    // Check that the remote file was found. The ContentType
    // check is performed since a request for a non-existent
    // image file might be redirected to a 404-page, which would
    // yield the StatusCode "OK", even though the image was not
    // found.
    if ((response.StatusCode == HttpStatusCode.OK ||
        response.StatusCode == HttpStatusCode.Moved ||
        response.StatusCode == HttpStatusCode.Redirect) &&
        response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase))
    {
        // if the remote file was found, download it
        Stream inputStream = response.GetResponseStream();
        Image img = Image.FromStream(inputStream);
        return img;
    }
    else
    {
        return null;
    }
}

从以下问题的答案中摘录并修改了这段代码: 从.NET / C#网站下载图像

暂无
暂无

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

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