【问题标题】:image upload in asp.net razor website在 asp.net razor 网站中上传图片
【发布时间】:2016-11-17 21:01:44
【问题描述】:

我有一个表格,您可以在其中输入有关图片的信息并上传,html表格中的上传代码是:

 @FileUpload.GetHtml(
                initialNumberOfFiles: 1,
                allowMoreFilesToBeAdded: false,
                includeFormTag: false,
                uploadText: "Upload"); 

在我得到的同一页面中的 c# 代码中:

                            var fileName = "";
                            var fileSavePath = "";
                            var uploadedFile = Request.Files[0];
                            fileName = Path.GetFileName(uploadedFile.FileName);
                            fileSavePath = Server.MapPath("~/Images/inscriptions/" +
                            fileName);
                            uploadedFile.SaveAs(fileSavePath);

由于某种原因,我收到错误“索引超出范围”:

var uploadedFile = Request.Files[0];

我希望用户点击浏览选择文件并填写其他文本框并点击保存上传图片并在数据库中填写信息(已处理)

【问题讨论】:

    标签: c# asp.net asp.net-mvc razor


    【解决方案1】:

    我发现您的问题可以通过以下解决方案之一解决:

    解决方案 1:将 includeFormTag: false 更改为 includeFormTag: true

    @FileUpload.GetHtml(
                initialNumberOfFiles: 1,
                allowMoreFilesToBeAdded: false,
                includeFormTag: true,
                uploadText: "Upload");
    

    如果FileUpload 助手放置在任何form 标记之外,则此解决方案适用。

    解决方案 2:使用 Html.BeginForm 和属性 enctype="multipart/form-data" 包装 FileUpload 助手。

    using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @FileUpload.GetHtml(
                initialNumberOfFiles: 1,
                allowMoreFilesToBeAdded: false,
                includeFormTag: false,
                uploadText: "Upload");
    }
    

    如果您不想通过FileUpload helper 创建新的表单标签并改用现有表单,则此解决方案适用。

    注意:Request.Files[0] 上的IndexOutOfRangeException 源自表单提交请求,其中省略了<input type="file" /> 中包含的文件部分,因此您需要包含enctype="multipart/form-data" 属性(参见说明here)。

    相关问题:

    How to use @FileUpload.GetHtml inside Html.BeginForm and sumbit FilesList

    Trying to work with Request.Files in WebMatrix

    【讨论】:

    • 感谢我刚刚将 enctype 部分添加到我现有的表单中并且它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 2021-08-14
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多