这似乎是一个非常简单的问题,但经过广泛的搜索,我似乎无法找到我在找什么。从网址中提取图像并将其保存到SQL数据库的最佳实现是什么?ASP.NET MVC3(C#)图像从URL到数据库
我在C#和Linq中使用MVC3到SQL。
这似乎是一个非常简单的问题,但经过广泛的搜索,我似乎无法找到我在找什么。从网址中提取图像并将其保存到SQL数据库的最佳实现是什么?ASP.NET MVC3(C#)图像从URL到数据库
我在C#和Linq中使用MVC3到SQL。
首先下载从URL的形象然后将它保存在数据库
string tnail = "";
WebClient client = new WebClient();
using (Image src = Image.FromFile("http://www.example.com/image.jpg"))
{
using (Bitmap dst = new Bitmap(25, 33))
{
using (Graphics g = Graphics.FromImage(dst))
{
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.High;
g.DrawImage(src, 0, 0, dst.Width, dst.Height);
}
tnail = tname;
tnail = Path.ChangeExtension(tnail, null);
tnail += "_thumbnail";
tnail = Path.ChangeExtension(tnail, "jpg");
dst.Save(Path.Combine(Server.MapPath(imagepath), tnail), ImageFormat.Jpeg);
}
}
也许最好的办法不是直接将其保存在数据库中,而是存储对中央文件存储的引用。
这就是说,你可以看看Inserting image over 3mb via linq-to-sql
如果我们假设你有一个持久化实体(以下称为ImageFile
),有代表文件的字节数组属性,你可以使用[WebClient.DownloadData][1]
。
using(WebClient client = new WebClient())
{
var img = new ImageFile();
img.Data = client.DownloadData("http://www.example.com/image.jpg");
// continue with saving your file.
}
'Image.FromFile()'不接受URI作为参数,因为它会抛出'ArgumentException':HTTP:// msdn.microsoft.com/en-us/library/stf701f5(v=vs.110).aspx – Monica 2014-08-16 19:31:37