ASP.NET 上传文件
首先新建一个类tool
下面是具体封装的方法:
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fileUploadControl">上传文件的控件</param>
/// <param name="path">上传的服务器相对路径径 如“~\\Resource\\Images”</param>
/// <param name="arrayType">上传文件的文件格式</param>
/// <param name="errorMessage">返回错误信息</param>
/// <param name="filePath">返回绝对路径</param>
/// <returns>返回值</returns>
public static bool UploadFile(FileUpload fileUploadControl, string path, string[] arrayType, out string errorMessage, out string filePath)
{
if (fileUploadControl.HasFile)
{
string fullFileName = fileUploadControl.PostedFile.FileName;
string fileName = fullFileName.Substring(fullFileName.LastIndexOf("\\") + 1);
string fileType = fileName.Substring(fileName.LastIndexOf('.') + 1);
if (arrayType.Contains(fileType.ToLower()))
{
string basePath = HttpContext.Current.Server.MapPath(path);
string subPath = basePath + "\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + fileName; //这里是给上传文件取个时间+文件名的名字
if (!File.Exists(subPath))
{
if (!Directory.Exists(basePath))
Directory.CreateDirectory(basePath);
filePath = subPath;
errorMessage = string.Empty;
return true;
}
else
{
errorMessage = "您上传的文件已存在,请重命名后再上传!";
filePath = string.Empty;
return false;
}
}
else
{
errorMessage = "您上传的文件格式不正确!";
filePath = string.Empty;
return false;
}
}
else
{
errorMessage = "您未上传文件或上传的文件为空!";
filePath = string.Empty;
return false;
}
}
下面是使用方法(上传按钮的点击事件):
protected void btnupload_Click(object sender, EventArgs e)
{
string errorMessage = string.Empty;
string filePath = string.Empty;
string[] arrayType=new string[]{"jpg","png","jpeg","bmp","gif"};
string path="~\\Resource\\Images";
bool status = tool.UploadFile(this.FileUpload1,path ,arrayType , out errorMessage, out filePath);
if (status)
{
try
{
FileUpload1.PostedFile.SaveAs(filePath);
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('上传成功!')", true);
}
catch (Exception)
{
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('上传失败!')", true);
throw;
}
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('" + errorMessage + "');", true);
}
}
OK,好了,这样就可以实现一般上传的功能了
推荐阅读
-
ASP.NET常用数据绑定控件优劣总结
-
【SpringMVC】---- 设置最大文件上传大小后,发送超过最大上传大小后,网页却出现连接被重置【已解决】
-
Asp.Net Core + SignalR 实现实时通信
-
ASP.NET学习笔记(五)-全球化部署,网站发布方法,AJAX使用,水晶报表使用,DropDownList,CheckBox全选
-
ASP.NET 上传文件
-
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
-
Asp.Net Core 轻松学-基于微服务的后台任务调度管理器
-
删除无用文件脚本
-
python写入中英文字符串到文件的方法
-
用Python遍历C盘dll文件的方法