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

Upload file to folder with javascript verification check - ASP.NET

本文关键字:文件夹 -ASP NET 上载 文件 javascript 验证 检查 使用      更新时间:2023-09-26

我已经为这个问题绞尽脑汁好几天了,需要一些帮助,也许一双新的眼睛会有所帮助。

我有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>

上传页面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);
    }
}

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

代码中有一些不正确的地方,比如在服务器按钮单击事件中使用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替换为所需值。