原理:
上传的文档存放在服务器中,上传的地址存放在数据库里。
当我们编写程序时把文档存到服务器的指定文件里,同时把存放的地址写入在数据库里,
当我们使用文档时从数据库中读出地址,然后根据地址在服务器中找到所用的文档。
例:上传视频文档
前台代码:
1 <asp:FileUpload ID="fuVideo" runat="server" /> 2 <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click" /> 3 4 <div class="ad-video"> 5 //VideoUrl 是后台定义的公共属性 即文档在服务器中的地址 6 <video src="<%=VideoUrl %>" controls="controls" style="width: 606px; height: 342px"></video> 7 8 </div>
<%=VideoUrl %>从后台取VideoUrl值
后台代码:
1 //声明公共属性 2 public string VideoUrl 3 { 4 get 5 { 6 return (string)ViewState["VideoUrl"]; 7 } 8 set 9 { 10 ViewState["VideoUrl"] = value; 11 } 12 }
//ViewState类似于session,但session是会话级别.只要这会话在.session中存的数据就在.,viewstate 是页面界别.只要这个页面在viewstate中存的数据就在.
他的作用是保存数据
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 // .GetObject()能得到数据库中第一行第一列的数据(这里用到类SqlHelper,在博客里能找到压缩包SqlHelper.zip)
) 6 VideoUrl = SqlHelper.GetObject("select Value from Sys_SystemConfig where Code='首页视频' ").ToString(); 7 } 8 }
解释:select Value from Sys_SystemConfig where Code='首页视频'
Sys_SystemConfig是表名
Value是存放文档地址的列名
Code是列名,根据code的值找到表中的某条数据
ID | Code | Value |
1 | 视频 | 1111 |
2 | 首页视频 | 2222 |
3 | 音频 | 3333 |
1 protected void btnUpload_Click(object sender, EventArgs e) 2 { 3 string savePath = string.Empty; 4 //如果选择了文件 5 //fuVideo是fileupload控件的ID 6 if (fuVideo.HasFile) 7 { 8 //保存位置 9 //"/Upload/video"是服务器中存放的地址 10 string saveDir = Server.MapPath("/Upload/video"); 11 //如果目录不存在 创建目录 12 if (!Directory.Exists(saveDir)) 13 { 14 Directory.CreateDirectory(saveDir); 15 } 16 //修改保存的文件名为 年(yyyy)月(MM与分区分)日(dd)时(hh)分(mm)秒(ss)毫秒(ff)+后缀 17 //fuVideo.FileName是上传文档的后缀 18 string fileExt = Path.GetExtension(fuVideo.FileName).ToLower(); 19 string upFileName = DateTime.Now.ToString("yyMMddhhmmssff") + fileExt; 20 //后缀是否是.mp4文档 21 if (fileExt != ".mp4") 22 { 23 //ScriptHelper.ShowAlertScript相当于respons.write() 24 ScriptHelper.ShowAlertScript("只能上传视频文件"); 25 return; 26 } 27 string fileSavePath = Path.Combine(saveDir, upFileName); 28 //保存文件 29 fuVideo.SaveAs(fileSavePath); 30 savePath = "/Upload/video/" + upFileName; 31 } 32 // 数据库更新 33 string str = "update Sys_SystemConfig set Value='"+savePath+"' where Code='首页视频'"; 34 // .Execute()执行 成功是true 35 if (SqlHelper.Execute(str)) 36 { 37 ScriptHelper.ShowAlertScript("上传成功");//相当于Response.write(); 38 } 39 else 40 ScriptHelper.ShowAlertScript("上传失败"); 41 42 }