【问题标题】:Uploaded File not Posting上传的文件未发布
【发布时间】:2012-05-24 07:57:47
【问题描述】:

我正在使用下面的上传表单发布到使用下面代码处理文件的页面。但是,该文件未显示。我得到计数​​ 0,没有发布任何文件....我在表单帖子中遗漏了什么吗?我知道上传文件时必须使用什么是相当具体的。我还在下面提供了更多信息。

表格

<form id="importform" method="POST" target="uploadframe" enctype="multipart/form-data" action="AJAX/Import_Subprocess_Content/RAC_Connolly_ImportSession.aspx">
                                        <input type="file" id="importfile" onchange="fileselected()"/>
                                        <input type="button" value="Import File" onclick="uploadfile();" />
                                    </form>

服务器端代码

  protected void Page_Load()
        {
            Response.Write(Request.Files.Count);
        }

更多信息

表单是使用.submit().submit()通过javascript发布的

文件输入为visibility:hidden

按钮首先调用文件输入的click()

onchange文件输入调用表单的submit()

更新:尝试删除隐藏属性,但没有解决问题。

【问题讨论】:

  • 我认为隐藏(通过 css)字段没有发布。尝试删除隐藏样式。
  • @HasanKhan 我试过了,但没有解决问题

标签: c# javascript forms post file-upload


【解决方案1】:

您实际上并未进行文件上传。您需要将代码添加到 Import File 按钮。

此代码查看文件字段,检查它是否有文件,然后说只能上传 CSV 类型。然后它继续将文件保存到 Web 服务器上的 /datafiles 文件夹中。

protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (file.HasFile)
        {
            try
            {
                if (file.PostedFile.ContentType == "application/octet-stream")
                {
                    string filename = Path.GetFileName(file.FileName);
                    file.SaveAs(Server.MapPath("~/datafiles/") + filename);
                    lblStatus.ForeColor = Color.Green;
                    lblStatus.Text = "Upload status: File uploaded!";
                }
                else
                {
                    lblStatus.ForeColor = Color.Red;
                    lblStatus.Text = "Upload status: Only .CSV files are accepted! This is a " + file.PostedFile.ContentType + " file";
                }
            }
            catch (Exception ex)
            {
                lblStatus.ForeColor = Color.Red;
                lblStatus.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
            }
        }
    }

【讨论】:

    【解决方案2】:

    文件需要一个名称属性才能上传。当给定 name 属性时,IE7 会出现另一个问题,即在上传文件时无法通过 javascript 发布表单。必须默认使用提交按钮而不是 onchange 事件。

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 1970-01-01
      • 2023-01-27
      • 2013-08-05
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      相关资源
      最近更新 更多