实验室/FileUpLoad.aspx.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO; //文件读写命名空间
public partial class FileUpLoad : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 文件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpLoad_Click(object sender, EventArgs e)
{
//1.判断用户是否选择了文件
if (!fulFile.HasFile)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "1", "<script type='text/javascript'>alert('请选择文件')</script>");
return;
}
//2.获取用户上传文件的客户端文件名
string clientFileName = fulFile.FileName;
//3.获取文件的后缀名,并对上传文件的类型进行验证(即用户上传的文件类型是否是要求的文件类型)
string fileExt = clientFileName.Substring(clientFileName.LastIndexOf('.'));
if (fileExt != ".jpg" && fileExt != ".png") //这里要求用户上传格式为jpg和png的图片
{
this.ClientScript.RegisterStartupScript(this.GetType(), "2", "<script type='text/javascript'>alert('文件类型错误')</script>");
return;
}
//4.设置上传文件的大小
byte[] b = fulFile.FileBytes; //这里获得的文件大小是以字节(b)为单位的
double fileSize = b.Length / 1024.0; //得到KB
if (fileSize > 2048) //只能上传不大于2M的文件
{
this.ClientScript.RegisterStartupScript(this.GetType(), "3", "<script type='text/javascript'>alert('文件大小超出范围')</script>");
return;
}
//5.设置文件保存到服务器端的路径
//这里我们将文件保存到程序主文件同级目录下的UsersFile文件夹中
//所以我们需要将Web服务器上的虚拟路径(相对路径)转为相对应的物理文件路径(绝对路径)
string serverFilePath = Server.MapPath("~/UsersFile/"); //这里的~符号表示网站的根目录
//6.为文件取一个服务器端的名字,这里有两种实现方法
//1)第一种,使用文件上传的时间来作为文件名
//string serverFileName = DateTime.Now.ToString("yyyyMMddHHmmss");
//2)第二种,使用全局唯一标示符(GUID)来命名,每次生成的字符串都不一样,所以文件名不会重复
string serverFileName = Guid.NewGuid().ToString();
//7.拼接文件保存的路径,并将文件保存到服务器端
string serverFileSavePath = serverFilePath + serverFileName + fileExt; //路径+文件名+后缀
fulFile.SaveAs(serverFileSavePath);
//8.判断文件是否上传成功,通过文件是否存在来判断 (这里需要引用文件读写命名空间)
if (File.Exists(serverFileSavePath))
{
后面还有 10 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。