上传的文件未发布
本文关键字:文件 | 更新日期: 2023-09-27 18:34:27
我正在使用下面的上传表单发布到使用以下代码处理文件的页面。但是,该文件未显示。我得到计数 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);
}
更多信息
该表单通过javascript发布,使用.submit()
文件输入visibility:hidden
按钮首先调用文件输入的click()
onchange
文件输入调用表单的submit()
更新:尝试删除隐藏属性,但未更正问题。
您实际上并没有进行文件上传。您需要将代码添加到"导入文件"按钮。
此代码查看文件字段,检查它是否有文件,然后说只能上传 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;
}
}
}
<</div>
div class="answers"> 文件需要上传名称属性。当给定名称属性时,IE7会出现另一个问题,即上传文件时无法通过javascript发布表单。必须默认使用提交按钮而不是更改事件。