【问题标题】:Upload file to folder with javascript verification check - ASP.NET使用 javascript 验证检查将文件上传到文件夹 - ASP.NET
【发布时间】:2015-01-07 02:08:21
【问题描述】:

我已经在这个问题上苦苦思考了好几天,需要一些帮助,也许换一双眼睛会有所帮助。

我有 Windows Server 2012、IIS 8.0 和 ASP.NET 4.5。我是 IIS 和 ASP.NET 的新手,所以请耐心等待。我正在尝试构建的网站允许用户上传文件,这些文件将首先被检查以确保它们有效,然后将被放置在 Web 服务器上的文件夹中。

我尝试在将表单提交到服务器之前先让 Javascript 验证输入。但是,什么都没有上传,所以我决定一次做一步,只做一个简单的上传(暂时没有 Javascript 验证)。

这是当前文件的状态:

upload_page.aspx

<html>
...
<script language="Javascript">
    function validate()
    {
        var filter = <allowed file extensions>;
        var file1 = document.getElementById("uploadfile1").value;
        //do the checks

        if(filter.test(file1))
        {
            returnval = true;
        }
        else
        {
            returnval = false;
        }

        return returnval;
    }
</script>
...
<body>
    <form method="post" runat="server" name="upload" enctype="multipart/form-data">
        <asp:FileUpload ID="uploadfile1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="Upload" onClientClick="btnUpload_Click" />
        <asp:Button ID="btnReset" runat="server" Text="Reset" />
    </form>
</body>
</html>

upload_page.aspx.cs

protected void btnUpload_Click(object sender, EventArgs e)
{
    if(this.uploadfile1.HasFile)
    {
        this.uploadfile1.SaveAs("C:\\inetpub\\wwwroot\\uploaded_files\\" + this.uploadfile1.FileName);
    }
}

如果有人能告诉我我做错了什么,将不胜感激!谢谢。

【问题讨论】:

  • actionform 在哪里?
  • 其实你的formsubmit里面什么都没有。
  • 好吧,我很困惑,因为herehere等问题的答案让我把它拿出来了。无论如何,我把它重新输入为action="upload_page.aspx",但也没有用。

标签: javascript asp.net asp.net-mvc-4 iis-8


【解决方案1】:

代码中有一些不正确的地方,例如使用onClientClick 进行服务器按钮单击事件。您可以在this.uploadfile1.save.. 中使用PostedFile

正确的完整代码

ASPX 部分

<form id="form1" runat="server" enctype="multipart/form-data" method="post" action="upload_page.aspx">
    <div>
        <asp:FileUpload ID="uploadfile1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
        <asp:Button ID="btnReset" runat="server" Text="Reset" />
    </div>
</form>

后面的代码

protected void btnUpload_Click(object sender, EventArgs e)
{
    if (uploadfile1.HasFile)
    {
        string rootpath = @"D:\webfile\";
        uploadfile1.PostedFile.SaveAs(rootpath + uploadfile1.PostedFile.FileName);
    }
}

rootpath 替换为所需值。

【讨论】:

  • 感谢您的回答。我做了你的改变,但我确实得到了一个错误。 “btnUpload_Click”不是“ASP_upload_page_aspx”的成员
  • @noblerare,确保您拥有 btnUpload_Click 的单个副本,并清理、重建您的解决方案,以确保没有编译错误。
  • 我检查并仔细检查了所有内容,但无法使 .cs 文件正常工作。我最终只是将相关代码放在.aspx 文件的&lt;script&gt; 标记中,它就像一个魅力。
猜你喜欢
  • 1970-01-01
  • 2010-12-27
  • 2012-10-30
  • 2016-05-10
  • 2012-04-21
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
相关资源
最近更新 更多