前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c# 上传代码

c# 上传代码

作者头像
Tony老师
发布2020-03-05 11:22:11
6880
发布2020-03-05 11:22:11
举报
文章被收录于专栏:托老师托老师

文件上传这里分上传到服务器的文件夹和数据库 1:上传到文件夹 首先看aspx页面: 程序代码: <tr bgcolor="#ffffff"> <td height="24"> <input type="file" id="Up_file" class="edline" runat="server" style="WIDTH: 456px; HEIGHT: 20px" size="60" name="Up_file"> </td> </tr> <TR bgcolor="#ffffff"> <TD height="24" align="center"> <asp:Button ID="submit" Runat="server" Text="文件上传" CssClass="Cmdbut" Height="20px"></asp:Button> </TD> </TR>

下面是后台,及"文件上传"按钮触发的事件: 程序代码: private void submit_Click(object sender, System.EventArgs e) { HttpPostedFile postedFile = this.Up_file.PostedFile; //得到要上传文件 string fileName, fileExtension; fileName = System.IO.Path.GetFileName(postedFile.FileName); //文件名称 if (fileName != "") { fileExtension = System.IO.Path.GetExtension(fileName); //上传文件的扩展名 string new_filename = fileExtension; //给文件重新命名 //postedFile.FileName: 客户端文件地址 //postedFile.ContentType.ToString(): 上传的文件类型 //保存文件到文件夹,地址是当前页面的同一级目录下的files文件夹中 postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("files/") + new_filename); //…..可以把文件的相应信息保存到数据库中去。 } } 在显示这些文件信息的时候,可以直接链接文件地址。

2:上传到数据库 程序代码: private void submit_Click(object sender, System.EventArgs e) { Stream imgStream; int docSize; string docName; string imgContentType; string imgUploadedName; imgStream = this.Up_file.PostedFile.InputStream; //二进制流 docSize = this.Up_file.PostedFile.ContentLength; //文件大小 imgUploadedName = this.Up_file.PostedFile.FileName; //文件名称 byte[] docBody=new byte[docSize]; imgContentType = this.Up_file.PostedFile.ContentType; //文件类型 docName =imgUploadedName.Substring(imgUploadedName.LastIndexOf(‘\’)+1); int n = imgStream.Read(docBody, 0, docSize); DataTable temp = mynew.Get_ZH_EngBriefing_byoid(0); //返回一个空的table DataRow row = temp.NewRow(); //…..省略其他保存代码 row["DOWN_PATH"] = docBody; //保存数据到数据库,DOWN_PATH字段为二进制 row["FILENAME"] = docName; //保存文件名称 row["LX"] = imgContentType; //保存文件类型 temp.Rows.Add(row); mynew.SaveZHEngBriefing(temp); }

在显示这些文件信息时,如果要实现下载,可以参考下面的代码: 1):当放置到datagrid中时,必须绑定数据到模板列,比如: 程序代码: <asp:TemplateColumn HeaderText="文件下载"> <HeaderStyle HorizontalAlign="Center"></HeaderStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:LinkButton id=downLink runat="server" ToolTip='<%# "下载文件:"+DataBinder.Eval(Container.DataItem,"FILENAME").ToString() %>’ Text='<%# DataBinder.Eval(Container.DataItem,"FILENAME").ToString() %>’ CommandName="downFile"> </asp:LinkButton> </ItemTemplate> <FooterStyle HorizontalAlign="Center"></FooterStyle> </asp:TemplateColumn>

利用datagrid的ItemCommand事件来实现下载 程序代码: private void Eng_briefing_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (e.CommandName == "downFile") { long EngBriefing_OID = long.Parse(Eng_briefing.Items[e.Item.ItemIndex].Cells[0].Text.ToString()); //首先返回要下载数据的相应行记录关键字OID DataTable file = mynew.Get_ZH_EngBriefing_byoid(EngBriefing_OID); //获取该文件所在行记录(这里Get_ZH_EngBriefing_byoid方法是我自己的一个定义的根据OID来返回table) if (file.Rows.Count > 0) { Response.Clear(); Response.Buffer = false; Response.AppendHeader("Content-Disposition","attachment; filename="+HttpUtility.UrlEncode(file.Rows[0]["FILENAME"].ToString(),System.Text.Encoding.UTF8)); Response.BinaryWrite((byte[])file.Rows[0]["DOWN_PATH"]); Response.End(); }

} }

当文件信息以一个LinkButton显示出来的话,就可以利用lLinkButton的onclick事件来实现: 程序代码: <asp:linkbutton id="FileLink" runat="server"></asp:linkbutton>

程序代码: private void FileLink_Click(object sender, System.EventArgs e) { long EngBriefing_OID = long.Parse(this.L_EngBriefing_OID.Text.ToString()); //取得文件所在行的相应OID DataTable file = mynew.Get_ZH_EngBriefing_byoid(EngBriefing_OID); //获取文件所在行信息 if (file.Rows.Count > 0) { Response.Clear(); Response.Buffer = false; Response.AppendHeader("Content-Disposition","attachment; filename="+HttpUtility.UrlEncode(file.Rows[0]["FILENAME"].ToString(),System.Text.Encoding.UTF8)); Response.BinaryWrite((byte[])file.Rows[0]["DOWN_PATH"]); Response.End(); } }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2007-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档