0

在图像上传时,我想用不同的名称和调整尺寸制作该图像的副本。

[HttpPost]
public ActionResult Create(HttpPostedFileBase photo)
{
    string path =  System.Configuration.ConfigurationManager.AppSettings["propertyPhotoPath"].ToString(); 
    if ((photo != null) && (photo.ContentLength > 0))
    {
        var fileName = Path.GetFileName(photo.FileName);
        var pathToSaveOnHdd = Path.Combine(Server.MapPath(path), fileName);
        string dbPhotoPath = string.Format("{0}{1}", path, fileName);
    }
... 
//        to do: make image copy, change dimensions
}
4

2 回答 2

2

要复制文件,您可以使用该File.Copy方法。要调整图像大小,有许多技术,包括 GDI+、WIC、WPF(这里是 a 中的示例similar post)或 NuGet,例如ImageResizer.

于 2013-03-19T07:48:44.347 回答
0

您可以从 ActionController 将上传的文件转换为字节并更改流的大小,如下所示

字节[] image1 = 新字节[photo.ContentLength - 1]; HttpPostedFileBase 文件 = photo.PostedFile; file.InputStream.Read(image1, 0, file.ContentLength - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(image1);

您可以使用图形类以所需大小重绘图像,如下所示 System.Drawing.Image image = Image.FromStream(ms);

图形图形 = Graphics.FromImage(image); graphics.DrawImage(image, 0, 0, image.Width, image.Height);

于 2013-03-19T08:41:31.953 回答