这是我在CSDM里发的第一篇博文,尽管我注册已经有一段时间了。这第一篇不能完全算是原创,因为网上类似的东西实在是太多了,但我却也并非从那里找一段放进来,就算是整理吧,不说了,希望在这里认识更多的朋友!
1.方法一:
特点:以文件原名称上传,但会做重名检查;
当指定目录不存在时,自行创建;
可以对上传文件大小进行判断。
问题:默认的文件大小不超过4M 当文件大小超出范围时,页面则无法显示(不给予提示)
解决:需要上传大文件的时候,修改WebConfig配置,添加如下(maxRequestLength的值的单位为byte)
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="60"></httpRuntime>
</system.web>
<asp:TextBox ID="fname" runat="server"></asp:TextBox><br />
<asp:FileUpload ID="fupload" runat="server" />
<asp:Button ID="fgo" runat="server" Height="22px" OnClick="fgo_Click" Text="点击上传" /></div>
//引包
using System.IO;
/// 按钮事件
protected void fgo_Click(object sender,EventArgs e)
{
// 必须上传以下格式的内容
string[] extendName ={ "jpg","gif","rar" };
// 上传的文件名
string fname = fupload.FileName;
// 当扩展名符合要求时为 1
int extendCheck = 0;
// 上传文件的大小
int flength = fupload.PostedFile.ContentLength;
/// 未指定上传路径
if (!fupload.HasFile)
{
this.ClientScript.RegisterStartupScript(this.GetType(),"error","alert('请指定上传路径')",true);
return;
}
/// 验证文件扩展名是否符合要求
for (int i = 0; i < extendName.Length; i++)
{
if (fname.Substring(fname.Length - 3,3) == extendName[i])
{
extendCheck = 1;
}
}
/// 检查文件扩展名
if (extendCheck == 0)
{
this.ClientScript.RegisterStartupScript(this.GetType(),"alert('请上传指定格式的文件')",true);
return;
}
/// 检查文件大小 应大于0byte小于4M
else if (flength <= 0 || flength > 2 * 1024 * 1024)
{
this.ClientScript.RegisterStartupScript(this.GetType(),"alert('文件大小应小于4M')",true);
return;
}
else
{
// 上传文件的目标文件夹
string fpath = Server.MapPath("./cyimage/");
/// 当文件夹不存在时创建文件夹
if (!Directory.Exists(fpath))
{
Directory.CreateDirectory(fpath);
}
/// 存在文件夹,检查名称是否重复
else if (File.Exists(fpath + fname))
{
this.ClientScript.RegisterStartupScript(this.GetType(),"alert('文件已存在,请更换文件或重新命名!')",true);
return;
}
/// 将文件以原来名称上传 并捕捉异常
else
{
try
{
//另存图片文件
fupload.SaveAs(fpath + fname);
//将文件名写入文本框
fshowname.Text = fname;
}
catch (Exception exp)
{
this.ClientScript.RegisterStartupScript(this.GetType(),"alert('由于网络原因,上载文件错误 " + exp.Message + "')",true);
}
}
}
}
/* ----------------------------------------------------------------------------------------------------------------*/
2.方法二:
特点:将文件名更改为当前日期加时间储存;
当指定目录不存在时,自行创建;
可以对上传文件大小进行判断。
问题:默认的文件大小不超过4M 当文件大小超出范围时,页面则无法显示(不给予提示)
解决:需要上传大文件的时候,修改WebConfig配置,添加如下(maxRequestLength的值的单位为byte)
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="60"></httpRuntime>
</system.web>
<asp:TextBox ID="fname" runat="server"></asp:TextBox><br />
<asp:FileUpload ID="fupload" runat="server" />
<asp:Button ID="fgo" runat="server" Height="22px" OnClick="fgo_Click" Text="点击上传" /></div>
//引包
using System.IO;
/// 按钮事件
protected void fgo_Click(object sender,"rar" };
// 上传的文件名
string fname = fupload.FileName;
// 当扩展名符合要求时为 1
int extendCheck = 0;
// 上传文件的大小
int flength = fupload.PostedFile.ContentLength;
/// 未指定上传路径 if (!fupload.HasFile) { this.ClientScript.RegisterStartupScript(this.GetType(),true); return; } /// 验证文件扩展名是否符合要求 for (int i = 0; i < extendName.Length; i++) { if (fname.Substring(fname.Length - 3,3) == extendName[i]) { extendCheck = 1; } } /// 检查文件扩展名 if (extendCheck == 0) { this.ClientScript.RegisterStartupScript(this.GetType(),true); return; } /// 检查文件大小 应大于0byte小于4M else if (flength <= 0 || flength > 2 * 1024 * 1024) { this.ClientScript.RegisterStartupScript(this.GetType(),true); return; } else { // 上传文件的目标文件夹 string fpath = Server.MapPath("./cyimage/"); /// 当文件夹不存在时创建文件夹 if (!Directory.Exists(fpath)) { Directory.CreateDirectory(fpath); } /// 将文件以原来名称上传 并捕捉异常 try { // 另存为图片的图片名 string fsavename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + "." + fname.Substring(fname.Length - 3,3); // 另存图片文件 fupload.SaveAs(fpath + fsavename); //将文件名写入文本框 fshowname.Text = fsavename; } catch (Exception exp) { this.ClientScript.RegisterStartupScript(this.GetType(),true); } } }
原文链接:https://www.f2er.com/javaschema/287411.html