Maison >interface Web >Tutoriel H5 >Comment implémenter la fonction glisser et télécharger des fichiers en html5 php

Comment implémenter la fonction glisser et télécharger des fichiers en html5 php

巴扎黑
巴扎黑original
2017-03-19 14:05:421653parcourir

[Introduction] Cet article présente la fonction d'implémentation du téléchargement de fichiers en html5. Les étudiants dans le besoin peuvent s'y référer. Je fais référence à un site Web d'album photo étranger pour le style de l'interface. Il n'y a pas beaucoup de changements. Je convertis simplement les chants d'oiseaux en chinois et le style de téléchargement est également modifié. La raison pour laquelle j'ai choisi ceci

Cet article présente. les détails sur Ceci est une introduction à la fonction de téléchargement de fichiers en HTML5. Les étudiants dans le besoin peuvent s'y référer.

Pour le style de l'interface, j'ai fait référence à un site Web d'album photo étranger. Les changements n'étaient pas importants, j'ai juste converti les chants d'oiseaux en chinois et le style de téléchargement a également été modifié. La raison pour laquelle j'ai choisi ceci est qu'il est facile pour moi de développer. Il prend en charge 3 façons d'ajouter des Comment implémenter la fonction glisser et télécharger des fichiers en html5 phps, l'une est le téléchargement par glisser-déposer, l'autre est la sélection régulière du téléchargement de fichiers et l'autre consiste à ajouter des Comment implémenter la fonction glisser et télécharger des fichiers en html5 phps réseau. Il intègre intelligemment trois modes de téléchargement et vous pouvez le parcourir avec le navigateur IE. S'il ne prend pas en charge HTML5, il n'y a pas d'invite à glisser-déposer pour télécharger des Comment implémenter la fonction glisser et télécharger des fichiers en html5 phps, comme le montre l'Comment implémenter la fonction glisser et télécharger des fichiers en html5 php :

.

La partie la plus importante du téléchargement par glisser-déposer est la partie js du code, qui implémente 70 % des fonctions. Les 30 % restants consistent simplement à soumettre les informations de l'Comment implémenter la fonction glisser et télécharger des fichiers en html5 php en arrière-plan, puis à les exécuter. traitement correspondant, tel que la compression et le recadrage. Jetons donc d'abord un coup d'œil au code d'implémentation de js.


fichier test.php

 代码如下 复制代码





无标题文档


<script><br/>$().ready(function() {<br/> if($.browser.safari || $.browser.mozilla){<br/>  $('#dtb-msg1 .compatible').show();<br/>  $('#dtb-msg1 .notcompatible').hide();<br/>  $( '#drop_zone_home').hover(function(){<br/>   $(this).children('p').stop().animate({top:'0px'},200);<br/>  },function (){<br/>   $(this).children('p').stop().animate({top:'-44px'},200);<br/>  });<br/>  //功能实现<br/>  $(document).on({<br/>   dragleave:function(e){<br/>    e.preventDefault();<br/>    $('.dashboard_target_box').removeClass('over');<br/> },<br/>   drop:function(e){<br/>    e.preventDefault();<br/>    //$('.dashboard_target_box').removeClass('over');<br/>   },<br/>   dragenter :function(e){<br/>    e.preventDefault();<br/>    $('.dashboard_target_box').addClass('over');<br/>   },<br/>   dragover:function(e){<br/>    e.preventDefault();<br/>    $('.dashboard_target_box').addClass('over');<br/>   }<br/>  });<br/>  var box = document.getElementById('target_box'); <br/>  box.addEventListener("drop",function(e){<br/>   e.preventDefault();<br/>   //获取文件列表<br/>   var fileList = e.dataTransfer.files;<br/>   var img = document.createElement('img');<br/>   //检测是否是拖拽文件到页面的操作<br/>   if(fileList.length == 0){<br/>    $('.dashboard_target_box').removeClass ('over');<br/>    return;<br/>   }<br/>   //检测文件是不是图片<br/>   if(fileList[0].type.indexOf('Comment implémenter la fonction glisser et télécharger des fichiers en html5 php') === -1){ <br/>    $('.dashboard_target_box').removeClass('over');<br/>    return;<br/>   }<br/>   <br/>   if($.browser.safari){<br/>    //Chrome8 <br/>    img.src = window.webkitURL.createObjectURL(fileList[0]);<br/>   }else if($.browser.mozilla){<br/>    //FF4 <br/>    img.src = window.URL.createObjectURL( fileList[0]);<br/>   }else{<br/>    //实例化file reader对象<br/>    var reader = new FileReader();<br/>    reader.onload = function(e){<br/>     img. src = this.result;<br/>     $(document.body).appendChild(img);<br/>    }<br/>    reader.readAsDataURL(fileList[0]);<br/>   }<br/>   var xhr = new XMLHttpRequest ();<br/>   xhr.open("post", "test.php", true);<br/>   xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");<br/>   xhr.upload. addEventListener("progress", function(e){<br/>    $("#dtb-msg3").hide();<br/>    $("#dtb-msg4 span").show();<br/>    $("#dtb-msg4").children('span').eq(1).css({width:'0px'}) ;<br/>    $('.show').html('');<br/>    if(e.lengthComputable){<br/>     var chargé = Math.ceil((e.loaded / e.total) * 100) ;<br/>     $("#dtb-msg4").children('span').eq(1).css({width:(loaded*2) 'px'});<br/>    }<br/>   } , false);<br/>   xhr.addEventListener("load", function(e){<br/>    $('.dashboard_target_box').removeClass('over');<br/>    $("#dtb-msg3") .show();<br/>    $("#dtb-msg4 span").hide();<br/>    var result = jQuery.parseJSON(e.target.responseText);<br/>    alert(result.filename); <br/>    $('.show').append(result.img);<br/>   }, false);<br/>   <br/>   var fd = new FormData();<br/>   fd.append('xfile' , fileList[0]);<br/>   xhr.send(fd);<br/>  },false);<br/> }else{<br/>  $('#dtb-msg1 .compatible').hide(); <br/>  $('#dtb-msg1 .notcompatible').show();<br/> }<br/>});<br/></script>



 


  

选择你的图片
开始上传


  


   拖动图片到这里
开始上传图片
  


 
 

选择网络图片


 


  
  





 代码如下 复制代码

 $r = new stdClass( );
 header('content-type: application/json');
 $maxsize = 10; //Mo
 if($_FILES['xfile']['size'] > ($maxsize * 1048576)){
  $r->error = "图片大小">图片大小不超过$maxsize Mo";
 }
 $folder = 'files/';
 if(!is_dir($folder)){
  mkdir($folder);
 }
 $ dossier .= $_POST['dossier'] ? $_POST['dossier'] '/' : '';
 if(!is_dir($dossier)){
  mkdir($dossier);
 }
 
 if(preg_match('/Comment implémenter la fonction glisser et télécharger des fichiers en html5 php/i', $_FILES['xfile']['type'])){
     $filename = $_POST['value'] $_POST ? ['value'] : $folder . sha1 (@microtime() . '-' . $_FILES['xfile']['name']) '.jpg';
 }else{
     $tld = split(',', $_FILES['xfile']['name']);
     $tld = $tld[count($tld) - 1];
     $filename = $_POST['value '] ? $_POST['value'] : $folder . sha1(@microtime() . '-' . $_FILES['xfile']['name']) . 🎜> $types = Array('Comment implémenter la fonction glisser et télécharger des fichiers en html5 php/png', 'Comment implémenter la fonction glisser et télécharger des fichiers en html5 php/gif', 'Comment implémenter la fonction glisser et télécharger des fichiers en html5 php/jpeg');
 if(in_array($_FILES['xfile']['type'], $types)) {
  $source = file_get_contents($_FILES["xfile"]["tmp_name"]);
  Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpresize($source, $filename, $_POST['width'], $_POST['height'], $_POST['crop'], $_POST['quality']);
 }else{
  move_uploaded_file($_FILES["xfile"]["tmp_name"], $filename);
 }
 
 $path = str_replace('test.php', '', $_SERVER['SCRIPT_NAME']);
 
 $r->filename = $filename;
 $r- >path = $path;
 $r->img = 'Comment implémenter la fonction glisser et télécharger des fichiers en html5 php';
 
 echo json_encode($r);
 
 function Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpresize($source, $destination, $width = 0, $height = 0, $crop = false, $quality = 80) {
     $quality = $quality ? $quality : 80;
     $Comment implémenter la fonction glisser et télécharger des fichiers en html5 php = Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpcreatefromstring($source);
     if ($Comment implémenter la fonction glisser et télécharger des fichiers en html5 php) {
         / / Obtenir les dimensions
         $w = Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpsx($Comment implémenter la fonction glisser et télécharger des fichiers en html5 php);
         $h = Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpsy($Comment implémenter la fonction glisser et télécharger des fichiers en html5 php);
         if (($width && $w > $width) || ($height && $ h > $hauteur)) {
             $ratio = $w / $h;
             if (($ratio >= 1 || $height == 0) && $width && !$crop) {
                 $new_height = $width / $ratio;
                 $new_width = $width;
             } elseif ($crop && $ratio                  $new_width = $width;
             } else {
                $new_width = $height * $ratio;
                $new _height = $height;
             }
         } autre {
             $new_width = $w;
             $new_height = $h;
         }
         $x_mid = $new_width * .5;  //milieu horizontal
         $y_mid = $nouvelle_hauteur * .5 ; //milieu vertical
         // Rééchantillonner
         error_log('height: ' . $new_height . ' - width: ' . $new_width);
         $new = Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpcreatetruecolor(round($new_width), round($ new_height));
         Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpcopyresampled($new, $Comment implémenter la fonction glisser et télécharger des fichiers en html5 php, 0, 0, 0, 0, $new_width, $new_height, $w, $h);
         // Recadrage
         if ($crop) {
             $crop = Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpcreatetruecolor($width ? $width : $new_width, $height ? $height : $new_height);
             Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpcopyresampled($crop, $new, 0, 0, ($x_mid - ($width * .5)), 0, $width, $height, $width, $height);
             //($y_mid - ($height * .5))
         }
          // Sortie
         // Activer l'entrelacement [pour JPEG progressif]
         Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpinterlace($crop ? $crop : $new, true);
 
         $dext = strtolower(pathinfo($destination, PATHINFO_EXTENSION));
if ($dext == '') {
             $dext = $ext;
             $destination .= '.' . $ext;
         }
         switch ($dext) {
             case 'jpeg':
             case 'jpg':
                Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpjpeg ($crop ? $crop : $nouveau, $destination, $ qualité);
                 break;
             case 'png':
                $pngQuality = ($quality - 100) / 11.111111;
                 $p ngQuality = round(abs($pngQuality));
                 Comment implémenter la fonction glisser et télécharger des fichiers en html5 phppng ($crop ? $crop : $new, $destination, $pngQuality);
                 break;
             case 'gif':
                 Comment implémenter la fonction glisser et télécharger des fichiers en html5 phpgif($crop ? $crop : $new, $destination);
> 🎜>?> ;




Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn