zoukankan      html  css  js  c++  java
  • jquery file upload + asp.net 异步多文件上传

    百度了很久,国内一直 找不到 使用jquery file upload 插件 +asp.net 的相关代码
    一开始使用 jquery uploadify ,一款基于 flash的插件,但是不支持 Safari浏览器 (苹果设备没戏了)。
    于是想换 纯js或jquery的插件,但是 苦苦没 找到,不知道大家都用什么好方法实现。
    于是 开始下面的 代码。。。
     
    下面一些js里面的 分析是 自己调试 + 看源码得出的结论
    非官方api(没找见) 的结果,只是为了满足自己的项目,没有深究。
    如有不正确,希望指正
     
    basic.html

    <!DOCTYPE HTML>
    <html lang="en">
    <head>
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/jquery.fileupload.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="js/vendor/jquery.ui.widget.js"></script>
    <script src="js/jquery.iframe-transport.js"></script>
    <script src="js/jquery.fileupload.js"></script>
    <script src="js/jquery.fileupload-process.js"></script>
    <script src="js/jquery.fileupload-validate.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <script type="text/javascript">
    $(function () {
    var url = '/Handler1.ashx?folder=/File/';
    $('#fileupload').fileupload({
    url: url,
    dataType: 'json',
    //如果有格式需求,可把里面 的 gif|jpe?g|png 替换成相应格式的文件
    acceptFileTypes: /(.|/)(gif|jpe?g|png)$/i
    }).on('fileuploaddone', function (e, data) {
    //成功:handler中返回 json对象
    //这里的 result 为你再handler中 返回的 json对象
    alert(data.result.name);
    }).on('fileuploadfail', function (e, data) {
    //失败: 如果handler没有 返回 对象,则 会执行 这个 函数
    var file = data.files[0];
    alert(file.name);
    }).on('fileuploadprocessalways', function (e, data) {
    //格式判断
    //1.引用上面的paocess.js validate.js
    //2.如果格式不正确,执行该函数
    var index = data.index, file = data.files[index];
    if (file.error) {
    alert(file.name);
    alert(file.error); //error信息在 validate.js中,可以自己修改
    }
    });

    })
    </script>
    </head>
    <body>
    <pre>
    1.input控件如果 不加 multiple属性,则为单文件上传
    2.bootstrap.min.css bootstrap.min.js
    这个样式 是bootstrap的样式,如果有需求再引用,主要是为了好看
    3.详细的返回方法见代码里面
    </pre>
    <span class="btn btn-success fileinput-button"><i class="glyphicon glyphicon-plus"></i>
    <span>Select files...</span>
    <input id="fileupload" type="file" name="files[]" multiple="multiple">
    </span>
    <div id="files" class="files">
    </div>
    </body>
    </html>

     

    handler

    using System.IO;
    using System.Web;

    namespace NmsWebJQueryFileUpload
    {
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class Handler1 : IHttpHandler
    {
    public bool IsReusable
    {
    get
    {
    return false;
    }
    }

    public void ProcessRequest(HttpContext context)
    {
    HttpPostedFile uploadedfile = context.Request.Files[0];
    string FileName = uploadedfile.FileName;
    string FileType = uploadedfile.ContentType;
    int FileSize = uploadedfile.ContentLength;
    FileInfo info = new FileInfo(FileName);
    string folderFullPath = context.Server.MapPath(context.Request["folder"]);
    if (!Directory.Exists(folderFullPath))
    {
    Directory.CreateDirectory(folderFullPath);
    }
    uploadedfile.SaveAs(folderFullPath + "\" + info.Name);
    context.Response.ContentType = "text/plain";

    //重点这里一定要返回 一个 对象。否则 html页面会认为请求错误的
    context.Response.Write("{"name":"" + info.Name + "","url":"" + FileType + "","size":"" + FileSize + ""}");

    }
    }
    }

    所用的 jquery file upload 为 官网当前 时间 最新 
    欢迎大家多多交流
  • 相关阅读:
    Python
    版本控制
    后台
    前端
    提升权限 关闭系统
    SC命令(windows服务开启/禁用)
    获取当前电脑全部网络连接名字
    x64 win64编译环境下ADO链接Access数据库的问题解决
    Netsh命令-网络禁用开启
    windows主机防护
  • 原文地址:https://www.cnblogs.com/shihao316558512/p/9737047.html
Copyright © 2011-2022 走看看