使用javascript验证检查将文件上传到文件夹 - ASP.NET

时间:2014-11-10 17:27:14

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

我在这个问题上已经好几天了,可以使用一些帮助,也许一双新鲜的眼睛会有所帮助。

我有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);
    }
}

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

1 个答案:

答案 0 :(得分:1)

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

更正完整代码

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替换为所需的值。