传统的使用FTP类的上传相信大家都会的,这里就不作讲解了,今天我们要讲解的是ASP文件代码上传功能。
放一个file类型的<input>和一个按钮,并且为这个按钮添加点击事件(btnUpLoad_Click)就可以上传了。
<input id="UpLoad" type="file" runat="server" />
<asp:Button runat="server" Text="上传" ID="btnUpLoad" OnClick="btnUpLoad_Click" />
后台
再就是在后台编写上传按钮点击事件UpLoad_Click里的代码,先大体说一下思路:
1、根据file类型的<input>控件获得将要上传文件在本机的物理路径;
2、在这个物理路径中用截取字符串的方法获得文件名(第一步中取得的路径为本机的绝对路径,在服务器上是无效的,所以这里我们只需要获取文件名);
3、利用file类型的<input>控件属性PostedFile的SaveAs()方法将相应文件存储到服务器中指定的文件夹中。
核心代码:
protected void btnUpLoad_Click(object sender, EventArgs e)
{
//取出所选文件的本地路径
string fullFileName = this.UpLoad.PostedFile.FileName;
//从路径中截取出文件名
string fileName = fullFileName.Substring(fullFileName.LastIndexOf("\\") + 1);
//限定上传文件的格式
string type = fullFileName.Substring(fullFileName.LastIndexOf(".") + 1);
if (type == "doc" || type == "docx" || type == "xls" || type == "xlsx" || type == "ppt" || type == "pptx" || type == "pdf" || type == "jpg" || type == "bmp" || type == "gif" || type == "png" || type == "txt" || type == "zip" || type == "rar")
{
//将文件保存在服务器中根目录下的files文件夹中
string saveFileName = Server.MapPath("/files") + "\\" + fileName;
UpLoad.PostedFile.SaveAs(saveFileName);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('文件上传成功!');</script>");
//向数据库中存储相应通知的附件的目录
BLL.news.InsertAnnexBLL insertAnnex = new BLL.news.InsertAnnexBLL();
AnnexEntity annex=new AnnexEntity(); //创建附件的实体
annex.AnnexName=fileName; //附件名
annex.AnnexContent=saveFileName; //附件的存储路径
annex.NoticeId = noticeId; //附件所属“通知”的ID在这里为已知
insertAnnex.InsertAnnex(annex); //将实体存入数据库(其实就是讲实体的这些属性insert到数据库中的过程,具体BLL层和DAL层的代码这里不再多说)
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择正确的格式');</script>");
}
}
是不是很容易就学会了呢?其实现在有好多现成的ASP文件上传代码组件,大家只要封装一下,就可以布局到自己的网站上去的。网页知识大全为大家整理。