2015-11-25 61 views
-1

我们在Google Chrome浏览器中将其设置为“拖放并上传”,但它的工作正常,但不适用于Explorer Edge。我的脚本只适用于谷歌浏览器

这就是我的HTML和JavaScipt。

<head> 
    <meta charset="utf-8"> 
    <title>Drag N Drop</title> 
    <link rel="stylesheet" type="text/css" href="includes/dragNdrop/css/global.css">   
</head> 


<body> 
    <div id="uploads"></div> 
    <div class="dropzone" id="dropzone"> 

     <p class="titleDragNdrop">Drag and Drop to upload</p> 
     <p class="SubtitleDragNdrop">We'll send your files to a temporal server while we create your page</p> 

    </div> 

    <script> 



     (function() { 

      var dropzone = document.getElementById('dropzone'); 

      var upload = function(files) { 
       var formData = new FormData(), 
       xhr = new XMLHttpRequest(), 
       x; 

       for(x = 0; x < files.length; x = x + 1){ 
        formData.append('file[]', files[x]); 
       } 

       xhr.onload = function() { 
        var data = this.responseText; 
        console.log(data); 
       } 

       xhr.open('post', 'includes/dragNdrop/upload.php'); 
       xhr.send(formData); 

      } 

      dropzone.ondrop = function(e) { 
       e.preventDefault(); 
       this.className = 'dropzone'; 
       upload(e.dataTransfer.files); 
      }; 

      dropzone.ondragover = function() { 
       this.className = 'dropzone dragover'; 
       return false; 
      }; 

      dropzone.ondragleave = function() { 
       this.className = 'dropzone'; 
       return false; 
      }; 

     }()); 



    </script> 



</body> 

而这种代码打我的PHP

$uploaded = array(); 

if(!empty($_FILES['file']['name'][0])){ 

    $carpetConNomCambiado= rand(); 

    mkdir('../../USERS/temporal/' .$carpetConNomCambiado); 

foreach($_FILES['file']['name'] as $position => $name){  


    if(move_uploaded_file($_FILES['file']['tmp_name'][$position], '../../USERS/temporal/' . $carpetConNomCambiado . '/' . $name)) { 

    $uploaded[] = array(
     'name' => $name, 
     'file' => 'uploads/' . $name 


    ); 

    } 
} 

为什么这个工作只是完美的谷歌浏览器,但不与IE OE优势?

当我在IE中拖动somenthing什么也没有发生。 (从控制台没有消息)

三江源, 鲍里斯

+0

好了,你做了什么诊断?你看到什么错误?当您逐步浏览IE Edge的全功能内置调试器中的代码时会发生什么? –

+4

*“我不是JavaScript开发人员,这是我朋友的脚本。”*对不起,我在上面评论时(我以为你说你*是一个JavaScript开发人员)会误读该行。如果你不是,那么请你的朋友修复它。我担心堆栈溢出是专门为程序员。 (请参阅网站描述:*“专业和发烧友程序员问答”*) –

+0

如果您不知道答案是否可以,就不要像我一样愚蠢,谢谢 –

回答

-1

你得到什么错误?

而且

/** 
**FormData() is only applicable in IE 10 
**/ 
var formData = new FormData(), 

这里FormData in IE8/9

更多信息和IM假设这是跨平台和藏汉旧的浏览器?

xhr = new XMLHttpRequest(), 

万一使用此功能笑

function createXmlHttpRequestObject() 
{ 
    var xmlHttp; 

    if(window.ActiveObject) 
    { 
     try 
     { 
      xmlHttp = new ActiveObject("Microsoft.XMLHTTP"); 
     }catch(e) 
     { 
      xmlHttp = false; 
     } 
    }else 
    { 
     try 
     { 
      xmlHttp = new XMLHttpRequest(); 
     }catch(e) 
     { 
      xmlHttp = false; 
     } 
    } 

    if(!xmlHttp) 
     alert("cant create xml object"); 
    else 
     return xmlHttp; 
} 
相关问题