如何使用fileupload控件上传图像并将其保存在其他位置

本文关键字:保存 存在 位置 其他 图像 fileupload 何使用 控件 | 更新日期: 2023-09-27 18:19:51

我开发了一个mvc4剃须刀web应用程序,可以上传一个人的图像并将其保存在自定义的loaction(文件夹)中。

它有一个文件上传控件、一个文本框和一个按钮。当我使用文件上传控件上传图像时,我需要将其保存在自定义位置,如"D:/Employe/ContactImage",文件名应为文本框中键入的值。

这是视图中的代码

<div id="partial">
            @{Html.RenderPartial("WholeSaleUserDetail");}
            @using (Html.BeginForm("FileUpload", "WholeSaleTrade", new RouteValueDictionary(new { @class = "mainForm" }), FormMethod.Post, new { enctype = "multipart/form-data" }))
            {  
                <input name="uploadFile" type="file" id="fileUpload"/>
                <input type="submit" value="Save Image" id="saveImage" />
                <input type="text" id="imageName">
            }
            <div style="width: 200px; height: 200px;">
                <img id="empimage" src="../../Images/no_image.jpg" alt="" /></div>
        </div>

这是控制器类的代码

[HttpPost]
    public ActionResult FileUpload(HttpPostedFileBase uploadFile, string imageName) 
    {
        var j = new ImageJob(uploadFile, "~/Img/resize/" + imageName, new ResizeSettings(300, 300, FitMode.Stretch, "Jpeg"));
        j.Build();
        string imageUrl = PathUtils.GuessVirtualPath(j.FinalPath);
        return Json(imageUrl, JsonRequestBehavior.AllowGet);
    }

我在这里所需要做的就是将textbox的值作为文件名传递,并将图像保存在给定的位置。请帮我一下。。

如何使用fileupload控件上传图像并将其保存在其他位置

我发现您的代码有问题,输入字段的NAME需要与控制器参数匹配。在您的情况下,html输入没有名称,请尝试此操作。

<div id="partial">
        @{Html.RenderPartial("WholeSaleUserDetail");}
        @using (Html.BeginForm("FileUpload", "WholeSaleTrade", new RouteValueDictionary(new { @class = "mainForm" }), FormMethod.Post, new { enctype = "multipart/form-data" }))
        {  
            <input name="uploadFile" type="file" id="fileUpload"/>
            <input type="submit" value="Save Image" id="saveImage" />
            <input type="text" id="imageName" name="uploadFile">
        }
        <div style="width: 200px; height: 200px;">
            <img id="empimage" src="../../Images/no_image.jpg" alt="" /></div>
    </div>

对于控制器,你可以通过发布的文件(它有一个属性)获得文件名

[HttpPost]
public ActionResult FileUpload(HttpPostedFileBase uploadFile) 
{
    var j = new ImageJob(uploadFile, "~/Img/resize/" + uploadFile.FileName, new ResizeSettings(300, 300, FitMode.Stretch, "Jpeg"));
    j.Build();
    string imageUrl = PathUtils.GuessVirtualPath(j.FinalPath);
    return Json(imageUrl, JsonRequestBehavior.AllowGet);
}