Maison  >  Article  >  développement back-end  >  Comment utiliser Thinkphp5+uploadify pour télécharger des fichiers

Comment utiliser Thinkphp5+uploadify pour télécharger des fichiers

php中世界最好的语言
php中世界最好的语言original
2018-05-28 09:56:151869parcourir

Cette fois, je vais vous montrer comment utiliser Thinkphp5+uploadify pour implémenter le téléchargement de fichiers, et quelles sont les précautions pour utiliser Thinkphp5+uploadify pour implémenter le téléchargement de fichiers. Voici des exemples pratiques. cas, jetons un coup d'œil ensemble Jetez un œil.

C'est mon premier contact avec le développement côté serveur. J'ai essayé de créer un serveur backend OTA pendant mon apprentissage, et il a fallu beaucoup d'efforts pour réaliser le téléchargement de fichiers et l'affichage de la barre de progression.

J'ai rencontré plusieurs problèmes :

1. Le téléchargement de fichiers volumineux a échoué
2. Téléchargement annulé Transmettez la valeur de la variable au php d'arrière-plan

Enregistrez le processus :

1. Téléchargez le code uploadify sur le projet, par exemple sous

publicplug-insuploadify . 2. Le script frontal est le suivant,

Le client transmet le numéro de version dans formData. Veuillez consulter la méthode d'attribution version_id. Vous devez d'abord l'attribuer dans le contrôleur.

Annuler la correspondance ne peut pas être affiché, vous devez modifier le

background: url('uploadify-cancel.png')

dans uploadify.css. Faites attention à l'écriture du téléchargeur dans

<form enctype="multipart/form-data" method="post" >
  <input type="file" name="uploadify" id="uploadify" multiple="true" />
</form>
<script type="text/javascript">
  <?php $timestamp = time();?>
  var maxSize = 1024 * 1024*1024;//1G
  $(function() {
    $('#uploadify').uploadify({
      'debug'  : false,
      <span style="white-space:pre">   </span> 'fileSizeLimit ': maxSize,
      'formData'   : {
        'timestamp' : '<?php echo $timestamp;?>',
        'token'   : '<?php echo md5(&#39;unique_salt&#39; . $timestamp);?>',
        <span style="white-space:pre">    </span>'version_id': "{$version_id}"
      },
      'swf'   : '/public/plug-ins/uploadify/uploadify.swf',
      <span style="white-space:pre">    </span>'cancelImg':'/public/plug-ins/uploadify/uploadify-cancel.png',
      'uploader' : '{:url("Package/upload")}',
      <span style="white-space:pre">    </span>'fileTypeDesc'  : 'zip文件',
      <span style="white-space:pre">    </span>'fileTypeExts' : '*.zip',
      <span style="white-space:pre">   </span> 'multi': false
    });
  });
</script>
. 3. Le script back-end correspond à la fonction de téléchargement du package

Faites attention à la méthode d'obtention du fichier téléchargé Vous ne pouvez pas utiliser la méthode d'obtention du document officiel Thinkphp5.

Le nom du fichier enregistré ne peut pas contenir de symboles spéciaux

Modifiez le php.ini :

upload_max_filesize = 1024M Redémarrez le servicepost_max_size=48

public function upload(){
  $verifyToken = md5('unique_salt' . $_POST['timestamp']);
  if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
  $tempFile = $_FILES['Filedata']['tmp_name'];
    /*
    $targetFolder = '/public/uploads'; // Relative to the root
  $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
  $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
  // Validate the file type
  $fileTypes = array('jpg','jpeg','gif','png','zip'); // File extensions
  $fileParts = pathinfo($_FILES['Filedata']['name']);
  if (in_array($fileParts['extension'],$fileTypes)) {
    move_uploaded_file($tempFile,$targetFile);
    echo '1';
  } else {
    echo 'Invalid file type.';
  }*/
    $version = model("Version")->retrieve_by_version($_POST['version_id']);
    if($version){
      $file = new File($tempFile,'rw');
      $hash_code = $file->hash();
      $time = date("Y-m-d-i-s",$_POST['timestamp']);
      $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'.DS.$version['project_name'].DS.$version['version_name'],'update_'.$time.'.zip');
      if($info){
        // 成功上传后 获取上传信息
        echo $info->getExtension();
        echo $info->getSaveName();
        echo $info->getFilename();
      }else{
        // 上传失败获取错误信息
        echo $file->getError();
      }
    }else{
      echo '找不到对应版本';
    }
  }
}
Je crois que vous l'avez maîtrisé après En lisant le cas dans cet article Méthode, pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment ajouter, modifier et supprimer dynamiquement des tableaux JS et des objets JSON

Comment utiliser Héritage JS et héritage multiple

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