Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用fileupload控件上载图像并将其保存到其他位置_C#_Asp.net Mvc 4_File Upload_Razor_Image Upload - Fatal编程技术网

C# 如何使用fileupload控件上载图像并将其保存到其他位置

C# 如何使用fileupload控件上载图像并将其保存到其他位置,c#,asp.net-mvc-4,file-upload,razor,image-upload,C#,Asp.net Mvc 4,File Upload,Razor,Image Upload,我开发了一个mvc4 razor web应用程序,用于上传一个人的图像并将其保存在自定义loactionfolder中 它有一个文件上传控件、一个文本框和一个按钮。当我使用文件上载控件上载图像时,我需要将其保存在自定义位置,如D:/Employee/ContactImage,文件名应为文本框中键入的值 下面是视图中的代码 <div id="partial"> @{Html.RenderPartial("WholeSaleUserDetail");}

我开发了一个mvc4 razor web应用程序,用于上传一个人的图像并将其保存在自定义loactionfolder中

它有一个文件上传控件、一个文本框和一个按钮。当我使用文件上载控件上载图像时,我需要将其保存在自定义位置,如D:/Employee/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>
这里我需要做的就是将textbox的值作为文件名传递,并将图像保存在给定位置。
请在此帮助我。

我发现您的代码有问题,输入字段的名称需要与控制器参数匹配。如果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>

您遇到的问题是什么?主要问题是我无法将文本框值作为文件名传递给控制器。在控制器类中,应将文件名分配给参数名imageName您是否尝试将name=imageName添加到输入中?检查FormCollection以查看它是否已发回怎么样?
<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);
}