Js+php实现异步拖拽上传文件


Posted in Javascript onJune 23, 2015

异步拖拽上传文件--小实例

upload.html

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
  <head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
      #box{
        width:150px;height: 150px;border: 1px solid red;
      }
    </style>
    <script type="text/javascript" src="XMLhttpReuest.js"></script>
    <script>
      window.onload = function () {
        var box = document.getElementById('box');
        box.ondragenter = function (e) {
          e.preventDefault();
        }
        box.ondragover = function (e) {
          e.preventDefault();
        }
        box.ondragleave = function (e) {
          e.preventDefault();
        }
        box.ondrop = function (e) {
          e.preventDefault();
          var file = e.dataTransfer.files[0];
          var formData = new FormData();
          formData.append('aa', file);
 
          var xml = ajaxFunction();
          xml.open("post", './upload.php', true);
          xml.send(formData);
          xml.onreadystatechange = function () {
            if (xml.readyState == 4 && xml.status == 200) {
              var flag = xml.responseText;
              console.log(flag);
              if (flag == 1) {
//                box.innerHTML="上传成功";
                alert('上传成功');
              }
            }
          }
        }
 
 
      }
    </script>
  </head>
  <body>
    <div id="box">
      请拖入上传的文件
    </div>
  </body>
</html>

upload.php

<?php

header("Content-Type:text/html;charset=UTF-8");

if(is_uploaded_file($_FILES['aa']['tmp_name'])){

    move_uploaded_file($_FILES['aa']['tmp_name'], "./".iconv("UTF-8", "GBK", $_FILES['aa']['name']));

    echo '1';

}

 XMLhttpReuest.js

function ajaxFunction()
 {
 var xmlHttp;
 try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
 catch (e)
  {
 // Internet Explorer
  try
   {
   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
   }
  catch (e)
   {
   try
     {
     xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
     }
   catch (e)
     {
     alert("您的浏览器不支持AJAX!");
     return false;
     }
   }
  }
  return xmlHttp;
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Prototype使用指南之base.js
Jan 10 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
Feb 06 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
移动端手指放大缩小插件与js源码
May 22 Javascript
three.js中3D视野的缩放实现代码
Nov 16 Javascript
利用Javascript实现一套自定义事件机制
Dec 14 Javascript
Node.js中你不可不精的Stream(流)
Jun 08 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
javascript前端实现多视频上传
Dec 13 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
javascript进阶篇深拷贝实现的四种方式
Jul 07 Javascript
javascript框架设计之类工厂
Jun 23 #Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 #Javascript
javascript框架设计之浏览器的嗅探和特征侦测
Jun 23 #Javascript
简述AngularJS相关的一些编程思想
Jun 23 #Javascript
javascript框架设计之种子模块
Jun 23 #Javascript
在JavaScript的AngularJS库中进行单元测试的方法
Jun 23 #Javascript
javascript框架设计之框架分类及主要功能
Jun 23 #Javascript
You might like
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
理解JS绑定事件
2016/01/19 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python解决鸡兔同笼问题的方法
2014/12/20 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
python生成随机红包的实例写法
2019/09/02 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
explicit和implicit的含义
2012/11/15 面试题
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
护士2015年终工作总结
2015/04/29 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Win2008系统搭建DHCP服务器
2022/06/25 Servers