zoukankan      html  css  js  c++  java
  • asp.net MVC+easyUI 文件上传

       前言:公司前端都是index页面引用js,剩下的添加。。。都是html页。加大操作难度5555,所以就是主页面操作子页面上传。效果如下:

    1,前端html页代码如下 。其中请注意,form中enctype="multipart/form-data",必须使用form-data传值。并且html5可直接在input标签file控件中设置accept属性限制上传文件类型,设置multiple属性可同时上传多个文件。如果是页面为cshtml,则可以直接设置上传按钮的data-bind="click:事件名称"进行事件的绑定,因为页面为html页,我在js中处理绑定

    <form id="importFileForm" enctype="multipart/form-data">
                <table class="dialog-table">
                    <tbody>
                        <tr>
                            <td class="col-name">上传照片:</td>
                        <td>
                            <input type="file" class="easyui-filebox" id="fileImport" name="fileImport" style="260px;">
                            <a id="uploadFile" class="easyui-linkbutton" data-options="iconCls:'icon-ok'" href="#">上传</a>
                        </td>
                            
                    </tbody>
                </table>
            </form>
    

     2,下面是js代码,其中box为子窗体对象,若为cshtml即可直接用$获取对象,其中获取file对象为var file = document.getElementById('fileImport').files[0];form数据即为new FormData($("#importFileForm")[0]);

     1 function initAdd($box) {  
     2     $box.find("#uploadFile").bind('click', function (e) {
     3         // file对象
     4         var file = $box.find("#fileImport")[0].files[0];
     5         //判断控件中是否存在文件内容,如果不存在,弹出提示信息,阻止进一步操作
     6         if (file == null) { alert('错误,请选择文件'); return; }
     7       
     8         //获取文件名称
     9         var fileName = file.name;
    10         //获取文件类型名称
    11         var file_typename = fileName.substring(fileName.lastIndexOf('.'), fileName.length);
    12     
    13         var p = $box.find("#importFileForm");
    14         //获取form数据
    15         var formData = new FormData(p[0]);
    16      
    17         $.ajax({
    18             url: "/YGXX/YGGL/PostExcelData",
    19             type: 'POST',
    20             data: formData,
    21             async: false,
    22             cache: false,
    23             contentType: false,
    24             processData: false,
    25             success: function (returnInfo) {
    26                 alert(1);
    27             },
    28             error: function (returnInfo) {
    29                 alert(0);
    30             }
    31         });
    32     });
    33     }

    3,Controller代码

     1 [HttpPost]
     2         public string PostExcelData()
     3         {
     4             //获取客户端上传的文件集合
     5             HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
     6             //获取文件集合中的第一个文件(每次只上传一个文件)
     7             HttpPostedFile file = files[0];
     8             //定义文件存放的目标路径
     9             string targetDir = System.Web.HttpContext.Current.Server.MapPath("~/Content/touxiang");
    10             
    11             //组合成文件的完整路径
    12             string path = System.IO.Path.Combine(targetDir, System.IO.Path.GetFileName(file.FileName));
    13             //保存上传的文件到指定路径中
    14             file.SaveAs(path);
    15             return path;
    16         }

    结语:

      菜鸟技能,请大神指点。

  • 相关阅读:
    循环控制结构程序06 零基础入门学习C语言21
    数组01 零基础入门学习C语言23
    循环控制结构程序07 零基础入门学习C语言22
    数组02 零基础入门学习C语言24
    循环控制结构程序07 零基础入门学习C语言22
    基于VC++2012在Windows8上实现文件隐藏
    实现诺基亚 lumia Windows phone 的手机通话记录截取
    基于Windows8与Visual Studio2012实现杀毒通用模块
    用Visual studio2012在Windows8上开发内核驱动监视进程创建
    ISV客户博客系列:Linx发布它的Windows Azure销售点系统
  • 原文地址:https://www.cnblogs.com/jingjing-blogs/p/7121489.html
Copyright © 2011-2022 走看看