WebMatrix - 使用ImageResizer和图像上传

时间:2014-01-17 15:57:37

标签: razor webmatrix imageresizer

我一直在寻找令人敬畏的imageresizing.net工具,并且我在我的网站上成功使用了URL API。

但是,我热衷于查看托管API,并在上传照片时调整其大小。我开始构建一个使用WebImage帮助程序的非常基本的上传页面:

@using ImageResizer;

@{  
WebImage photo = null;
var newFileName = "";
var imagePath = "";

if(IsPost){
    photo = WebImage.GetImageFromRequest();
    if(photo != null){
        newFileName = Guid.NewGuid().ToString() + "_" +
            Path.GetFileName(photo.FileName);
        imagePath = @"images\" + newFileName;

        photo.Save(@"~\" + imagePath);
    }
}
}

我想在此上传中使用ImageResizing工具来调整大小/裁剪到特定大小。

下面是我需要插入的代码(我已经通过在现有图像上运行来测试它,并且它工作正常):

ImageResizer.ImageBuilder.Current.Build(imagePath,imagePath, 
new ResizeSettings("width=620&height=405&mode=crop"));

任何想法的房子,我可以合并这两个,并在我保存之前调整大小?

1 个答案:

答案 0 :(得分:1)

你太近了! Server.MapPath是您正在寻找的缺失部分。

@{
    if (IsPost) {
        var photo = WebImage.GetImageFromRequest();
        if (photo != null) {
            var filename = Guid.NewGuid().ToString() + "_" + Path.GetFileName(photo.FileName);
            var localPath = Server.MapPath("~/") + @"images\" + filename;
            photo.Save(localPath);           
            ImageResizer.ImageBuilder.Current.Build(localPath, localPath, new ImageResizer.ResizeSettings("width=620&height=405&mode=crop"));
        }
    }
}

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>My Site's Title</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    </head>
    <body>
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="mahfile">
            <input type="submit">
        </form>
    </body>
</html>