HTML5 拖拽上传多个文件文件

百度多文件上传插件完美Demo-支持分片上传、续点上传、多文件进度条单独显示。 支持H5/Flash等,用户可以自定义配置,也可以选择优先级支持,支持IE6等。 立即下载
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="上传" onclick="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;
            }
        }
    }


页面效果


html5js拖拽和点击上传 file文件上传的两种方式,点击按钮上传与拖放文件上传 立即下载

相关推荐

使用HTML5实现多文件上传

在Dojo1.6中有一个崭新的Multi-File Uploader(dojox.form.Uploader),它具有一个可定制样式的fileinput按钮,可使用多文件选择模式,且完全基于HTML元素。在不支持HTML5的浏览器中,该控件可以自动切换到使用Flash或者iframe。Fileinput之所以叫fileinput是因为它是一个标准的input元素,且其type属性被设置为"file"。很多年以来,file input一次只能选择并上传单个文件。在新的HTML

HTML5如何实现同时选择多个文件夹上传

HTML5的上传API可以支持同时选择多个文件和选择单个文件夹,但不支持同时选择多个文件夹。如果想同时选择多个文件夹,那只能另辟蹊径,不使用而是使用拖放API来实现选择多个文件夹,再执行上传处理。

zxy175916的博客 4291

机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达

本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。

cuda7parallel的博客 835

html5中怎么实现多文件上传功能

参考文章:http://blog.ncmem.com/wordpress/2023/12/25/html5%e4%b8%ad%e6%80%8e%e4%b9%88%e5%ae%9e%e7%8e%b0%e5%a4%9a%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%8a%9f%e8%83%bd/本篇文章为大家展示了html5中怎么实现多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。主要用到的是的multiple属性。

weixin_45525177的博客 242

告别龟速下载!保姆级教程:用离线包5分钟搞定Arduino IDE的STM32开发环境(附最新库文件)

本文提供了一套完整的Arduino IDE离线配置方案,帮助开发者5分钟快速搭建STM32开发环境。通过详细的板支持包安装指南、文件校验方法和常见问题解决方案,彻底解决GitHub下载慢的问题,提升开发效率。

weixin_26802933的博客 363

C# 实现鼠标轨迹录制与回放自动化功能(附源码)

通过本文的介绍,相信大家已经掌握了鼠标轨迹录制与回放功能的实现方式。该功能在自动化测试和重复性工作中具有重要应用价值。后续可以进一步优化,增加更多扩展功能,形成一个完整的自动化工具。

weixin_72139050的博客 1755

H5使用微信JSSDK的wx.chooseImage进行多文件上传

h5使用微信sdk解决在微信浏览器内核不能多图片上传的方法

javascript和jq设置金额整数与小数点后面的字体大小 6464

UE5.2 DynamicMesh避坑指南:从蓝图生成到物理碰撞的完整流程

本文详细解析了在UE5.2中使用DynamicMesh组件时,如何正确选择ADynamicMeshActor与AGeneratedDynamicMeshActor,并提供了从蓝图生成、初始化到配置物理碰撞的完整避坑流程。重点解决了SpawnActor失效、碰撞更新等常见问题,帮助开发者高效实现程序化网格生成与动态变形效果。

rrr55的博客 314

前端上传大型文件或超长数据的解决办法

最近这块好像挻火的,今天早上又有一位网友加我微信,也是想了解这块的技术和方案,实际上我的微信之前就已经在网上公开了,但是论坛里面很多网友还是不知道。昨天晚上论坛里面有一个网友发私信给我,想和我探讨一下这方面的技术问题,他是刚开始接触这块,以前没怎么接触过,都是做的后端,主要是以数据库操作为主,他也是最近接的一个项目,遇到了大文件上传下载的问题,问我有没有好用的组件,其它的要求没有,主要就是好用,方便。

weixin_52041354的博客 1939

智能车图像处理4-入门级分析3 ---十字路口补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 1万+

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2524

html批量上传php,HTML5实现拖拽批量上传文件的代码

本文主要和大家分享HTML5实现拖拽批量上传文件的代码,该组件基于 Vue.js 实现,UI 框架是 elementUI,完整的 demo 地址在https://github.com/Msxiaoma/upload-folder. 拖拽上传文件夹(仅仅chrome支持)。一、组件描述同时拖拽多个文件夹删除指定文件夹显示当前文件夹的上传进度条超过5M的文件夹分片上传效果如下:二、遇到的问题拖拽读取每...

weixin_39822493的博客 243

Coffin-Manson模型的详细讲解

Coffin-Manson模型是一个简单而强大的工具,用于预测低循环疲劳寿命,尤其在半导体功率循环中评估热机械可靠性。其核心是通过应变(或温度变化)与循环次数的对数关系,实现加速测试和寿命外推。尽管有局限性,通过改进版本(如加入激活能),它在电子封装、焊点疲劳和器件设计中仍广泛应用。实际使用时,建议结合实验数据拟合参数,并验证模型预测。如果需要特定材料的参数值、代码实现或进一步计算示例,请提供更多细节!

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 2144

html5 多个文件上传_HTML5拖放多个文件上传器

html5 多个文件上传HTML5 Drag and Drop Multiple File Uploader Our new article is going to tell you about HTML5 file upload. Yes, I explained basics of html5 file upload in the past (in one of our previous ar...

cukeoumuqian0413的博客 423

063、推挽变换器的磁偏问题与解决

本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。

Jack010169的博客 311

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

html5中的file控件支持多文件选择上传

在前两天的博文中刚介绍了一款基于jquery的多文件上传控件uploadify,原理是基于flash达到上传效果的 另外,还有一种基于隐藏iframe来实现多文件上传的方法(iframe中放一个form)。 例如:http://hi.baidu.com/yunanwu/item/c38ab756b93d593832e0a923。 但是其实在Html5中,file控件已经支持多文件选择了。

竹君子之家 3万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MVC5:使用Ajax和HTML5实现文件上传功能

引言 在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能。 基本功能:实现带有进度条的文件上传功能 高级功能:通过拖拽文件的操作实现多个文件上传功能 背景 HTML5提供了一种标准的访问本地文件的方法——File API规格说明,通过调用File API 能够访问文件信息,也可以利用客...

weixin_33962621的博客 144

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php的mvc中的ajax,MVC中基于Ajax和HTML5实现文件上传功能

这篇文章主要介绍了MVC中基于Ajax和HTML5实现文件上传功能的相关资料,需要的朋友可以参考下引言在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能。基本功能:实现带有进度条的文件上传功能高级功能:通过拖拽文件的操作实现多个文件上传功能背景HTML5提供了一种标准的访问本地文件的方法——Fi...

weixin_36166342的博客 242

HTML5 实现文件拖放上传

1.[图片]5375acf5gw1dusqsscfksj.jpg ​2. [代码][HTML]代码 <!DOCTYPE html><html lang="en" > <head> <meta charset="utf-8" /> <title>OSCTools JsBin在线演示-H...

weixin_30827565的博客 107

html5指南--3.拖拽功能的实现

  本文的内容是关于在html5中如何实现html元素拖拽功能。在html5之前要实现拖拽,需要借助js,现在html5内部就支持了拖拽的功能,但是要实现稍微复杂的功能还是少不了js的帮忙。下面我们看几个例子。   1.创建拖拽对象   我们可以通过draggable属性告诉浏览器,哪些元素需要实现拖拽功能。draggable有三个值:true:元素可以被拖拽;false:元素不能被拖拽;au...

weixin_30552635的博客 75

html5解决大文件断点续传

js代码 xhr2 将图片拖拽到此

何淑贤 233

vue实现拖拽上传

vue,ant组件实现拖拽上传

qq_49074952的博客 2458

php切片上传

&lt;!DOCTYPE html&gt; &lt;html&gt;       &lt;head&gt;           &lt;meta charset="UTF-8"/&gt;           &lt;title&gt;xhr2&lt;/title&gt;       &lt;/head&gt;       &lt;body&am

liaoxingwei2008的博客 623

批量上传技巧:拖拽多个音频文件到Fun-ASR界面

通过拖拽多个音频文件到 Fun-ASR 界面,用户可高效完成批量语音转写。系统在背后自动校验格式、统一配置参数并逐个处理,支持实时进度反馈与容错机制,显著提升会议录音、客服通话等场景下的处理效率。

weixin_34945060的博客 627
上一篇: C# Stopwatch类用法
下一篇: SQL Server 禁用外键约束和启用外键约束及删除表数据
code_long
博客等级 码龄16年 35粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值