1. JS文件:
  2. var FileName = "";
  3. var FileStr = "";
  4. (function () {
  5. function $id(id) {
  6. return document.getElementById(id);
  7. }
  8. function Output(msg) {
  9. var m = $id("filedrag");
  10. m.innerHTML = msg + m.innerHTML;
  11. }
  12. function FileDragHover(e) {
  13. e.stopPropagation();
  14. e.preventDefault();
  15. e.target.className = (e.type == "dragover" ? "hover" : "");
  16. }
  17. function FileSelectHandler(e) {
  18. FileDragHover(e);
  19. var files = e.target.files || e.dataTransfer.files;
  20. for (var i = , f; f = files[i]; i++) {
  21. ParseFile(f);
  22. UploadFile(f); //暂时注释
  23. }
  24. }
  25. function ParseFile(file) {
  26.  
  27. //pic类型
  28. if (file.type.indexOf("image") == ) {
  29. var reader = new FileReader();
  30. reader.onload = function (e) {
  31. Output(
  32. "<p><strong>" + file.name + ":</strong><br />" +
  33. '<img src="' + e.target.result + '" /></p>'
  34. );
  35. FileStr=e.target.result;
  36. }
  37. reader.readAsDataURL(file);
  38. }
  39. //文本类型处理
  40. if (file.type.indexOf("text") == ) {
  41. var reader = new FileReader();
  42. reader.onload = function (e) {
  43. Output(
  44. "<p><strong>" + file.name + ":</strong></p><pre>" +
  45. e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;") +
  46. "</pre>"
  47. );
  48. }
  49. reader.readAsText(file);
  50. }
  51. }
  52. function uploadProgress(evt) {
  53. if (evt.lengthComputable) {
  54. var percentComplete = Math.round(evt.loaded * / evt.total);
  55. document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
  56. }
  57. else {
  58. document.getElementById('progressNumber').innerHTML = '';
  59. }
  60. }
  61. function UploadFile(file) {
  62. $id("filedrag").innerHTML = ""; //清空当前fileDrg的信息
  63. if (location.host.indexOf("sitepointstatic") >= ) return
  64. var xhr = new XMLHttpRequest();
  65. if (xhr.upload && file.size <= $id("sizebyte").value && file.type == "image/jpeg") {
  66. var o = $id("progress");
  67. var progress = o.appendChild(document.createElement("p"));
  68. // progress.appendChild(document.createTextNode("名称: " + file.name));
  69. // xhr.upload.addEventListener("progress", function (e) {
  70. // var pc = parseInt(100 - (e.loaded / e.total * 100));
  71. // progress.style.backgroundPosition = pc + "% 0";
  72. // }, true);
  73. xhr.onreadystatechange = function (e) {
  74. alert(xhr.readyState);
  75. if (xhr.readyState == ) {
  76. progress.className = (xhr.status == ? "success" : "failure");
  77. }
  78. };
  79. var files = file.name;
  80. FileName=file.name;
  81. }
  82. }
  83. $("#btnUpload").click(function () {
  84. if ($("#fileselect").val() == "") {
  85. if(FileStr==""){
  86. alert("请选择一个图片文件,再点击上传。");
  87. return;
  88. }else{
  89. $.post(
  90. "SaveServer.ashx",
  91. {FileStr:FileStr},
  92. function(data){
  93. alert("成功");
  94. $("#fileselect").val("");
  95. });
  96. }
  97. }else{
  98. $.post(
  99. "SaveServer.ashx",
  100. {FileStr:FileStr},
  101. function(data){
  102. alert("成功");
  103. $("#fileselect").val("");
  104.  
  105. });
  106. }
  107.  
  108. });
  109. function Init() {
  110. var hh = this;
  111. var fileselect = $id("fileselect"),
  112. filedrag = $id("filedrag")/
  113. fileselect.addEventListener("change", FileSelectHandler, false);
  114.  
  115. var xhr = new XMLHttpRequest();
  116. if (xhr.upload) {
  117.  
  118. filedrag.addEventListener("progress", uploadProgress, false);
  119. filedrag.addEventListener("dragover", FileDragHover, false); //如果鼠标移动但停留在同一个控件中,则引发DragOver事件
  120. filedrag.addEventListener("dragleave", FileDragHover, false); //如果用户移出一个窗口,则引发DragLeave事件
  121. filedrag.addEventListener("drop", FileSelectHandler, false); //完成拖放操作
  122. filedrag.style.display = "block";
  123. upButton.style.display = "block";
  124. }
  125.  
  126. }
  127. if (window.File && window.FileList && window.FileReader) {
  128. Init();
  129. } else {
  130. upButton.style.display = "block";
  131. alert("您的浏览器不支持File API");
  132. }
  133. })();
  1. 后台接受页面:
  2. context.Response.ContentType = "text/plain";
  3. string[] aa = context.Request.Form["FileStr"].Split(',');
  4. MemoryStream ms = new MemoryStream(Convert.FromBase64String(aa[]));
  5. Bitmap b = new Bitmap(ms);
  6. string serverPath = System.Web.HttpContext.Current.Server.MapPath("~");
  7.  
  8. string toFilePath = Path.Combine(serverPath, @"images\headimg\");
  9. string pach = toFilePath + GetImageName() + ".jpg";
  10. b.Save(pach);
  11. context.Response.Write("yes");
  12. context.Response.End();

HTML5文件拖拽上传记录的更多相关文章

  1. html5 文件拖拽上传

    本文首先发表在  码蜂笔记 : http://coderbee.net/index.php/web/20130703/266 html5 文件拖拽上传是个老话题了,网上有很多例子,我一开始的代码也是网 ...

  2. HTML5应用之文件拖拽上传

    使用HTML5的文件API,可以将操作系统中的文件拖放到浏览器的指定区域,实现文件上传到服务器.本文将结合实例讲解HTML5+jQuery+PHP实现拖拽上传图片的过程,来看下HTML5的魅力吧. H ...

  3. day25—JavaScript实现文件拖拽上传案例实践

    转行学开发,代码100天——2018-04-10 今天记录一个利用JavaScript实现文件拖拽上传到浏览器,后天将文件打开的小案例. 基本功能:1点击添加文件 2 文件拖拽添加 html: < ...

  4. php和js实现文件拖拽上传

    Dropzone.js实现文件拖拽上传 http://www.sucaihuo.com/php/1399.html demo http://www.sucaihuo.com/jquery/13/139 ...

  5. [开源应用]利用HTTPHandler+resumableJs+HTML5实现拖拽上传[大]文件

    前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性提交所有的内容进内存是不现实的.大文件带来问题还有是否支持断点传输和多文件同时传输. 本文以resumableJs为例,介绍了如何在ASP. ...

  6. Nodejs express、html5实现拖拽上传

    一.前言 文件上传是一个比较常见的功能,传统的选择方式的上传比较麻烦,需要先点击上传按钮,然后再找到文件的路径,然后上传.给用户体验带来很大问题.html5开始支持拖拽上传的需要的api.nodejs ...

  7. Dropzone.js实现文件拖拽上传

    dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件.支持最大文件大小.支持设置文件类型.支持预览上传结果,不依赖jQuery库. 使用Dropzo ...

  8. html5实现拖拽上传

    <html><head> <meta http-equiv="Content-Type" content="text/html; chars ...

  9. Dropzone.js文件拖拽上传提示Dropzone already attached 解决

    最近收到客户的反馈,在操作上传文件有时会出现没有任何.大部分时间是正常. 重现问题后,f12打开后台控制台发现如下提示: Uncaught Error: Dropzone already attach ...

随机推荐

  1. mybatis中如果存在参数不再实体中的是如何处理

    <select id="queryMapByType" parameterType="int" resultType="my.geomap.VO ...

  2. 关于shm_open和shm_unlink的使用问题(要连接库的原因)

    关于shm_open和shm_unlink的使用问题 referencefunctionobjectsystembehaviorlinux C programming in the UNIX envi ...

  3. Oracle主表列表上显示从表字段拼成的字符串

    select t.*,t1.person_names from itil_duty_group t ,( select p.duty_group_id, WMSYS.WM_CONCAT(p.perso ...

  4. Hadoop集群时钟同步

    1. 为什么集群需要使用时间同步 暂时保留. 2. hadoop集群如何同步 2.1  以下面hadoop集群为例子: 10.10.11.1 master 10.10.11.2 slave 10.10 ...

  5. copy src remote_src false表示本地,true在远程

    文件组装模块-assemble assemble主要是将多份配置文件组装为一份配置文件. 参数 必填 默认 选项 说明 Backup 否 No Yes/no 是否创建备份文件,使用时间戳 Delimi ...

  6. 防止短连接耗尽你的动态TCP端口

    详见TCP协议https://en.wikipedia.org/wiki/Transmission_Control_Protocol但是TIME_WAIT是有时间窗口的,Linux默认是60秒.所以如 ...

  7. DataTables 固定列时实现 hover

    之前说过 DataTables 表格固定栏使用方法 .分析下它的代码,如下图 它实现固定左侧的原理就是把需要固定的数据复制一份,覆盖在全部数据的上面,用绝对定位固定在左边. 这样子有个问题就是,表格的 ...

  8. Hbase导入MapReduce数据的时候提示Running Job XXXX后就一直卡着不动

    代码确信无误之后,ant运行起来,发现一执行就卡在Running Job XXXX那里一直不动了. 试着把代码打包成jar扔到Linux执行也还是一样的效果.还是停在那里.然后就一顿瞎蒙.最后发现是H ...

  9. 很开心! 纪念一下 ^_^ 考勤系统(weX5+echarts3.0+Baas )

  10. 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查

    Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...