gpt4 book ai didi

asp.net利用ashx文件实现文件的上传功能

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章asp.net利用ashx文件实现文件的上传功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

原来以为文件上传是一个比较简单的功能,结果搞了一个晚上才搞定~这里主要介绍两种方法实现.

方法一:Form表单提交 。

html代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
< html >
< head >
   < meta charset = "utf-8" />
   < title >上传文件</ title >
   < script src = "Scripts/jquery-1.11.3.min.js" ></ script >
</ head >
< body >
   < form action = "UploadHandler.ashx" method = "post" enctype = "multipart/form-data" >
     < input id = "file_upload" name = "file_upload" type = "file" />
     < input id = "btn_upload" type = "submit" value = "上传" />
   </ form >
</ body >
</ html >

UploadHandler.ashx代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace WebApplication1
{
   /// <summary>
   /// UploadHandler 的摘要说明
   /// </summary>
   public class UploadHandler : IHttpHandler
   {
     public void ProcessRequest(HttpContext context)
     {
       context.Response.ContentType = "text/plain" ;
 
       HttpPostedFile file = context.Request.Files[ "file_upload" ];
       string filePath = context.Server.MapPath( "~/UploadFiles/" ) + System.IO.Path.GetFileName(file.FileName);
       file.SaveAs(filePath);
 
       context.Response.Write( "上传文件成功" );
     }
 
     public bool IsReusable
     {
       get
       {
         return false ;
       }
     }
   }
}

该方法虽然能够实现文件的上传,但是form表单提交之后整个页面就刷新了,如果要无刷新上传文件的话,就要使用ajax了.

方法二:jquery + ajax无刷上传 。

html代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
< html >
< head >
   < meta charset = "utf-8" />
   < title >上传文件</ title >
   < script src = "Scripts/jquery-1.11.3.min.js" ></ script >
</ head >
< body >
   < input id = "file_upload" name = "file_upload" type = "file" />
   < input id = "btn_upload" type = "button" value = "上传" />
 
   < script >
     $(document).ready(function ()
     {
       $('#btn_upload').bind('click', function ()
       {
         var formData = new FormData();
         formData.append('upload_file', $('#file_upload')[0].files[0]);
         $.ajax({
           url: 'UploadHandler.ashx',
           type: 'post',
           data: formData,
           contentType: false,
           processData: false,
           success: function (msg)
           {
             if (msg == "Yes")
             {
               alert('文件上传成功');
             }
             else
             {
               alert('文件上传失败');
             }
           }
         })
       });
     });
   </ script >
</ body >
</ html >

UploadHandler.ashx代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace WebApplication1
{
   /// <summary>
   /// UploadHandler 的摘要说明
   /// </summary>
   public class UploadHandler : IHttpHandler
   {
 
     public void ProcessRequest(HttpContext context)
     {
       context.Response.ContentType = "text/plain" ;
 
       if (context.Request.Files.Count > 0)
       {
         HttpPostedFile file = context.Request.Files[ "upload_file" ];
         string filePath = context.Server.MapPath( "~/UploadFiles/" ) + System.IO.Path.GetFileName(file.FileName);
         file.SaveAs(filePath);
         context.Response.Write( "Yes" );
       }
       else
       {
         context.Response.Write( "No" );
       }
     }
 
     public bool IsReusable
     {
       get
       {
         return false ;
       }
     }
   }
}

个人更推荐方法二,运行结果如下图所示:

asp.net利用ashx文件实现文件的上传功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/HerryDong/article/details/100549765 。

最后此篇关于asp.net利用ashx文件实现文件的上传功能的文章就讲到这里了,如果你想了解更多关于asp.net利用ashx文件实现文件的上传功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com