Maison >développement back-end >tutoriel php >Comment utiliser Thinkphp5+uploadify pour télécharger des fichiers
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 souspublicplug-insuploadify . 2. Le script frontal est le suivant,
background: url('uploadify-cancel.png')
<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('unique_salt' . $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éciauxModifiez 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!