这篇文章主要讲解了“怎么使用ASP.NET实现文件上传”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用ASP.NET实现文件上传”吧!
.NET中C/S和B/S上传文件不同
B/S中文件上传和C/S中的文件上传性质完全不一样
在C/S中文件上传基本上的原理是:将客户端计算机上的目标文件通过Socket网络将文件发送至目标服务器端计算机,然后将接受到的数据转换为原始文件
文件–转成字节流–发送到服务器–将字节流转成文件–保存
而B/S中文件上传指的是在客户端浏览器上,将目标文件选择好之后,通过网络将文件发送至目标服务器计算机,然后将接收到的文件保存在服务器计算机上。
B/S上传文件
页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="UpLoadFileDemo.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> 请选择要上传的文件:<asp:FileUpload ID="fileup" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="开始上传" OnClick="btnUpload_Click" /> <asp:Literal ID="lblMsg" runat="server"></asp:Literal> </div> </form> </body> </html>
事件:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; namespace UpLoadFileDemo { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnUpload_Click(object sender, EventArgs e) { //【1】判断文件是否存在 if (fileup.HasFile) { //【2】获取文件的大小,判断是否符合设置要求 double fileLength = fileup.FileContent.Length / (1024.0*1024.0); //获取配置文件中对上传文件大小的限制 double limeitLength = Convert.ToDouble(ConfigurationManager.AppSettings["fileMaxLength"])/1024.0; if (fileLength>limeitLength) { lblMsg.Text = $"上传文件不能超过{limeitLength}MB"; return; } // 【3】获取文件名,判断文件扩展名是否符合要求 string fileName = fileup.FileName; //判断文件是否exe文件 if (fileName.Substring(fileName.LastIndexOf(".")).ToLower()==".exe") { lblMsg.Text = "不能上传应用程序"; return; } //【4】修改文件名称 //一般情况下,上传的文件服务器中保存时不会采取原文件名,因为客户端用户很庞大,要保证每个用户端上传文件不能被覆盖 fileName = DateTime.Now.ToString("yyyyMMddhhmmssms")+"_"+fileName; //年月日时分秒毫秒_原文件名 防止文件绝对覆盖 //【5】获取服务器中存储文件的路径 //"~"代表应用程序的根目录,从服务器的根目录找 //"~" Shift键+左上角的"`"键 string path = Server.MapPath("~/UpFile"); //【6】上传文件 try { fileup.SaveAs(path+"/"+fileName);//参数:要上传到的文件完整路径,路径+"/"+文件名 lblMsg.Text = "文件上传成功"; } catch (Exception ex) { lblMsg.Text = $"文件上传失败{ex.Message}"; } } } } }
配置文件:
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <!--配置上传文件最大的字节数:kb单位--><!--30MB--> <add key="fileMaxLength" value="30720"/> </appSettings> <system.web> <compilation debug="true" targetFramework="4.6.1"/> <!--httpRuntime中可以设置请求的最大字节数maxRequestLength--> <httpRuntime targetFramework="4.6.1" maxRequestLength="40960"/> </system.web> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom> </configuration>
感谢各位的阅读,以上就是“怎么使用ASP.NET实现文件上传”的内容了,经过本文的学习后,相信大家对怎么使用ASP.NET实现文件上传这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。