asp.net上传文件的两种方法

1.内闭式(RUNAT SERVER方式)

这种方式是目前大多数人使用的一种,通过事件驱动来实现文件上传处理,Form及File Field需设置为Runat Server

代码如下:

void Button1_Click(object Source, EventArgs e) {

if (File1.PostedFile != null) {

//获取上传文件类型//
string FileType=File1.PostedFile.ContentType.ToString();


//检查是否允许上传,当前只允许上传jpg和gif格式文件//
if (FileType=="image/pjpeg" || FileType=="image/gif")
{
//获取文件名//
string FileName=File1.PostedFile.FileName.ToString();   

//获取扩展名//
string FileExt =FileName.Substring(FileName.LastIndexOf("."));

//重新设置一个文件名//
DateTime now = DateTime.Now;
string FrontFileName=now.ToFileTimeUtc()+File1.PostedFile.ContentLength.ToString();
FileName="/Upload/"+FrontFileName+FileExt;

try {
   //文件保存
   File1.PostedFile.SaveAs(Server.MapPath(FileName));
   Response.Write("上传成功");

}
catch (Exception exc) {
   Response.Write("上传错误,原因:+"exc.ToString()"");
}

}
}

<form enctype="multipart/form-data" runat="server">
选择要上传得文件<input id="File1" type=file runat="server">
<input type=button id="Button1" value="点击开始上传" OnServerClick="Button1_Click" runat="server">
</form>


     之所以称为内闭式是因为该种实现方式必须在同一个aspx文件内完成,有一定限制,但安全性较高。

2.开放式(Submit Form方式)

   该方式可以支持由其他页面提交,自由性较大,代码如下:

upload.aspx

<form name="form1" action="Save.aspx" method="post" enctype="multipart/form-data">
<INPUT type="file" id="File1" name="File1">
<input type="submit" name="submit" value="保存">
</form>

save.aspx

    private void Page_Load(object sender, System.EventArgs e)
{
   if( Request.Files.Count == 0 ) {
    Response.Write("<script>alert('请选择上传文件!');</script>");
    Response.End();
    return;
   }
   System.Web.HttpPostedFile file = Request.Files[0];
   String fileName = Request["fileName"];
   String save_path = "./attached/";
   String ext = System.IO.Path.GetExtension( file.FileName ).ToLower();
   Response.Write(ext);
   if( !System.IO.Directory.Exists( Server.MapPath( save_path ) ) )
    System.IO.Directory.CreateDirectory( Server.MapPath( save_path ) );
   if( ext == ".jpg" || ext == ".gif" || ext == ".bmp" || ext == ".png" ) {
    file.SaveAs( Server.MapPath( save_path + fileName ) );
    Response.Write("<script type=/"text/javascript/">parent.KindInsertImage('" + save_path + fileName + "','" + Request["imgWidth"] + "','" + Request["imgHeight"] + "','" + Request["imgBorder"] + "');</script>'");
    Response.End();
   }
   else {
    Response.Write("<script>alert('文件格式不支持!');</script>");
    Response.End();
   }
}

 只需弄清楚 HttpPostedFile和HttpFileCollection这两个对像,写批量文件上传就不是一件难事了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值