>php教程 >PHP开发 >Js+php는 파일의 비동기 드래그 앤 드롭 업로드를 구현합니다.

Js+php는 파일의 비동기 드래그 앤 드롭 업로드를 구현합니다.

高洛峰
高洛峰원래의
2016-12-30 13:19:591317검색

비동기 드래그 앤 드롭 업로드 파일--작은 예

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(&#39;box&#39;);
        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(&#39;aa&#39;, file);
  
          var xml = ajaxFunction();
          xml.open("post", &#39;./upload.php&#39;, 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(&#39;上传成功&#39;);
              }
            }
          }
        }
  
  
      }
    </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[&#39;aa&#39;][&#39;tmp_name&#39;])){
    move_uploaded_file($_FILES[&#39;aa&#39;][&#39;tmp_name&#39;], "./".iconv("UTF-8", "GBK", $_FILES[&#39;aa&#39;][&#39;name&#39;]));
    echo &#39;1&#39;;
}

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;
}

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

비동기 드래그 앤 드롭 업로드 파일을 구현하는 Js+php와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.