HTML5 拖拽上传多个文件文件

HTML 页面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title></title>
</head>
<body>
    <form id="upload" action="Handler1.ashx" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>HTML File Upload</legend>
            <input type="hidden" value="300000" />
            <div>
                <label for="fileselect">上传的文件:</label>
                <input type="file" id="fileselect" name="fileselect[]" multiple="multiple" />
                <div id="filedrag">将文件拖拽到这里</div>
            </div>
            <div id="ListViewFile"></div>
            <div id="messages">
                <p>Status Messages</p>
            </div>
        </fieldset>
        <input type="button" value="上传" οnclick="Upload();" />
        <div id="progressNumber"></div>
    </form>
</body>
</html>
<script type="text/javascript" language="javascript">
        var fd = new FormData();
        var FileIndex = 0;
        function Upload() {
            var xhr = new XMLHttpRequest();
            xhr.upload.addEventListener("progress", uploadProgress, false);
            xhr.addEventListener("load", uploadComplete, false);
            xhr.addEventListener("error", uploadFailed, false);
            xhr.addEventListener("abort", uploadCanceled, false);
            xhr.open("POST", "Handler1.ashx");
            xhr.send(fd);
        }
        function uploadProgress(evt) {
            if (evt.lengthComputable) {
                var percentComplete = Math.round(evt.loaded * 100 / evt.total);
                document.getElementById('progressNumber').style.width = percentComplete + '%';
            }
            else {
                document.getElementById('progressNumber').innerHTML = 'unable to compute';
            }
        }
        function uploadComplete(evt) {
            alert(evt.target.responseText);
        }
        function uploadFailed(evt) {
            alert("上传文件异常.");
        }
        function uploadCanceled(evt) {
            alert("取消.");
        } 
        (function () {
                    
            function $id(id) {
                return document.getElementById(id);
            }
            function Output(msg) {
                var m = $id("messages");
                m.innerHTML = msg + m.innerHTML;
            }
            if (window.File && window.FileList && window.FileReader) {
                Init();
            }
            function Init() {
                var fileselect = $id("fileselect");
                var filedrag = $id("filedrag")			    
                fileselect.addEventListener("change", FileSelectHandler, false);
                filedrag.addEventListener("dragover", FileDragHover, false);
                filedrag.addEventListener("dragleave", FileDragHover, false);
                filedrag.addEventListener("drop", FileSelectHandler, false);
            }            
            function FileSelectHandler(e) {
                FileDragHover(e);
                var files = e.target.files || e.dataTransfer.files;
                var iMgUil = window.webkitURL.createObjectURL(files[0]);
                var bigImg = document.createElement("img");
                bigImg.src = iMgUil;
                var myDiv = document.getElementById('ListViewFile');
                myDiv.appendChild(bigImg);
                for (var i = 0, f; f = files[i]; i++) {
                    FileIndex++;
                    ParseFile(f);
                    fd.append("FileData_"+FileIndex,files[i]);
                }
            }
            function FileDragHover(e) {
                e.stopPropagation();
                e.preventDefault();
                e.target.className = (e.type == "dragover" ? "hover" : "");
            }
            function ParseFile(file) {
                Output(
			                "<p>File information: <strong>" + file.name +
			                "</strong> type: <strong>" + file.type +
			                "</strong> size: <strong>" + file.size +
			                "</strong> bytes</p>"
		                    );
            }
        })();
    </script>


服务器处理页面

    /// <summary>
    /// Summary description for Handler1
    /// </summary>
    public class Handler1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.Files != null)
            {
                foreach (string fileDate in context.Request.Files.AllKeys)
                {
                    HttpPostedFile f = context.Request.Files[fileDate];
                    if (f != null && f.FileName != "")
                    {
                        string title = context.Request.Form["title"];
                        f.SaveAs("http://localhost:80/UploadFile/" + f.FileName);
                    }
                }
            }            
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }


页面效果


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值