zoukankan      html  css  js  c++  java
  • .NET中的FileUpload控件的使用Jquery(一)

    FileUpload在HTML中是个常用的基础控件,在涉及到上传各种格式的文件时候都会用到;笔者前段时间正好用到它做上传功能,记录下来做一些累积,

    前端到后台用的是的Jquery中的Ajax进行数据传输,在后台的逻辑处理中以HttpPostedFileBase的对象调用SaveAs(ServerSavePath)方法去存储到指定路径。

    Microsoft在技术文档中是这样描述HttpPostedFileBase的

    Serves as the base class for classes that provide access to individual files that have been uploaded by a client.
    用于提供客户端上传的单个文件访问的类的基类
     
    接下来看看如何实现:
    HTML
     
    1  <div class="container">
    2         <div class="row">
    3             <input type="file" id="files" multiple name="files" /><button class="btn-default" id="UploadButton">点我上传</button>
    4         </div>
    5     </div>
    View Code
    JS
     1  $(function () {
     2             $('#UploadButton').click(function () {
     3               var data= new FormData();
     4                 var fileUpload = $("#files").get(0);
     5                 files = fileUpload.files;
     6                 if (files.length > 0) {
     7                     for (var i = 0; i < files.length; i++) {
     8                         data.append(files[i].name, files[i]); //FormData 是以键值对的形式模拟表单,然后以XMLHttpRequest请求出去。表单的enctype的属性为multipart/form-data 
     9                     }
    10                     $.ajax({
    11                         url: '/IENotes/CommonFile,
    12                         type: "POST", 
    13                         processData: false,   //  不序列化,直接将data进行传输。
    14                         contentType: false,    // 告诉jquery不要设置content-Type请求头,设置成true会对FormData的边界造成干扰,接收不到数据。
    15                         data: data,
    16                         success: function (result) {
    17                             //location.href("Index");
    18                             alert(result);
    19                         },
    20                         error: function (err) {
    21                             alert(err.statusText);
    22                         }
    23                     });
    24                 }
    25             });
    26         });
    View Code
     后台
     1 public static bool CommonFile(){
     2  var  files = Request.Files.AllKeys.Distinct(); //将传输过来的files进行去重
     3                 if (files != null)
     4                 {
     5                     foreach (string each in files)
     6                     {
     7                         HttpPostedFileBase file = Request.Files[each] as HttpPostedFileBase; //注意,这里有一个对象类型转换的过程,需要将传过来的对象转换成HttpPostedFileBase对象
     8                         if (file != null)
     9                         {
    10                             var InputFileName = Path.GetFileName(file.FileName);
    11                             string str4 = AppDomain.CurrentDomain.BaseDirectory;    //获取基目录,它由程序集冲突解决程序用来探测程序集。
    12                             var ServerSavePath = Path.Combine(Server.MapPath("~/Uploads/") );
    13                             if (!Directory.Exists(ServerSavePath))//检查路径是否存在
    14                             {
    15                                 Directory.CreateDirectory(ServerSavePath);
    16                             }
    17                             var SavePath = Path.Combine(ServerSavePath ,InputFileName);
    18                             file.SaveAs(SavePath);
    19                         }
    20                     }
    21                     return true;
    22                 }
    23                 else
    24                 {
    25                     return false;
    26                 }
    27 }
    View Code
     感谢您的观看,您的是对我最大的支持!
     
  • 相关阅读:
    JSON 序列化类 南京酷得软件
    哈哈哈哈哈哈 找回记忆
    Presto
    (转)在Total Commander下使用SVN
    在ubuntu12.04,64位中安装lnmp一键包mysql的问题
    阿里云服务器上搭建php环境+redis
    在ubuntu12.04,64位中安装nginx+php+redis+mysql
    Redis篇:单线程I/O模型
    工具篇:apachehttpClient 和 jdk11HttpClient的使用
    技能篇:关于缓存数据的一致性探讨
  • 原文地址:https://www.cnblogs.com/spadesQ/p/10300637.html
Copyright © 2011-2022 走看看