FileUpload控件应用
目的:使用FileUpload控件来达到控制网页文件上传的目的。
根目录下建有“WebPage”文件:
前台Html代码如下:
<form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="upLoadFile" runat="server" Text="上传" onclick="upLoadFile_Click" /> <asp:Label ID="ShowMass" runat="server" Text=" "></asp:Label> <br /> </div> </form>
后台代码如下:
protected void upLoadFile_Click(object sender, EventArgs e) { string strName = FileUpload1.PostedFile.FileName;//使用fileupload控件获取上传文件的文件名 if (strName != null)//如果文件名存在 { bool fileOK = false; string kzm = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//获取控件中文件的扩展名 string juedui = Server.MapPath("~\\WebPage\\");//设置文件保存的本地路径为绝对路径,保存到当前项目中去 string newFileName = juedui + FileUpload1.FileName;; if (FileUpload1.HasFile)//验证FileUpload控件确实包含文件
{
string[] allowedExtensions = { ".html", "aspx", ".htm", ".xhtml", ".asp", ".php", ".jsp" };
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (kzm == allowedExtensions[i]) //验证扩展名是否符合
{
fileOK = true;
}
}
}
if (fileOK) //验证前面的判断是否都已经正确
{
try
{
FileUpload1.PostedFile.SaveAs(newFileName);//将文件存储到服务器上
}
catch (Exception)
{
ShowMass.Text = "文件上传失败";
}
}
else
{
ShowMass.Text = "只能上传网页类型文件";
}
}
else//文件不存在的状况 { //蹦出弹框提示文件不存在,或者可以用jquery作 ShowMass.Text = "请重新选择文件上传!"; } }
参考链接:http://www.cnblogs.com/fuge/archive/2012/07/25/2608693.html
新增:
当上传的文的网页文件为aspx页面时,上传该网页也同样要包含其.cs页面。用上面的方法只能得到所选择的aspx页面,并没有得到其下的.cs页,所以还要进行了些修改。
思路:用上面的方法已经能够获得到所选择文件的路径,使用FileUpload控件也能够将所选页面按照所想的上传到服务器中,所以想通过上传按钮再绑定一个路径,既绑定aspx的.cs页面,使用FileUpload控件的上传来上传两次,这样就可以达到想要的效果了!
新代码如下:
string strName = FileUpload1.PostedFile.FileName;//使用fileupload控件获取上传文件的文件名 if (strName != "")//如果文件名存在 { bool fileOK = false; string kzm = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//获取控件中文件的扩展名 //string newName = Guid.NewGuid().ToString(); //生成新的文件名,确保唯一性 string juedui = Server.MapPath("~\\WebPage\\");//设置文件保存的本地路径为绝对路径,保存到当前项目中去 string newFileName = juedui + FileUpload1.FileName; string newFileName2 = null; if (FileUpload1.HasFile)//验证FileUpload控件确实包含文件 { string[] allowedExtensions = { ".html", ".aspx", ".htm", ".xhtml", ".asp", ".php", ".jsp" }; for (int i = 0; i < allowedExtensions.Length; i++) { if (kzm == allowedExtensions[i]) //验证扩展名是否符合 { fileOK = true; } if (kzm == ".aspx") { newFileName2 = newFileName + ".cs"; } } } if (fileOK) //验证前面的判断是否都已经正确 { try { FileName.Text = newFileName; ShowMass.Text = "文件上传成功"; FileUpload1.PostedFile.SaveAs(newFileName);//将文件存储到服务器上 FileUpload1.PostedFile.SaveAs(newFileName2); } catch (Exception) { ShowMass.Text = "文件上传失败"; } } else { ShowMass.Text = "只能上传网页类型文件"; } } else//文件不存在的状况 { //蹦出弹框提示文件不存在,或者可以用jquery作 ShowMass.Text = "请重新选择文件上传!"; }