我在这个问题上已经好几天了,可以使用一些帮助,也许一双新鲜的眼睛会有所帮助。
我有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);
}
}
如果有人能告诉我我做错了什么,我将不胜感激!感谢。
答案 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
替换为所需的值。