php实现文件上传与下载(上)
php实现文件上传与下载(上)
php实现文件的上传与下载是一个挺基本的功能,一般网站多多少少都会有这样的需求在内,当然不是说所有的文件都可以被上传,那这网络就太没有安全性可言了。因为接触php时间不长,今天写练练手,随笔也就是公开记录而已啦。
文件上传:也就是将客户端的文件上传到服务器端,在将服务器端的临时文件移动到指定目录即可。主要思维就是先定义获取$_FILES中的二维数组变量,可以每次都用二维数组获取,也可以将第一维的放入一个数组变量中,然后每次获取该数组变量中的值,简化代码量----> 判断错误号是否为0或者是UPLOAD_ERR_OK为真时表示没有错误,可以上传----->将服务器上的临时文件移动到我们的指定目录下,叫什么名字,移动成功返回true,用move_uploaded_file($临时文件名,$目的地)----->另外一种方式就是用copy($临时变量名,$目的地)函数;
$_FILES中保存这儿上传文件的信息,这是一个二维数组,第一维当然就是上传进来的文件的名称了,第二维就是该文件的相关信息了,上传之后就可以打印该数组中的参数进行查看---用print_r($_FILES),可以看到里边的内容有:
name:上传文件的名称;
type:上传文件的MIME类型;
tmp_name:上传到服务器上的临时文件名;//很重要的,因为以后在服务器上操纵的就是这个文件
size:上传文件的大小;
error:上传文件的错误号,成功为0,。
服务器端配置---php.ini:
file_uploads=on,支持http上传;
upload_tmp_dir=,临时文件保存的目录;
upload_max_filesize= 2M ;允许上传文件的大小;
max_file_uploads=20; 允许一次上传文件数目,默认为20;
max_execution_time=-1;设置脚本被解析终止之前允许的最大执行秒数,防止程序太差(例如死循环)而占尽服务器资源;
max_input_time=60;脚本解析输入数据允许的最大秒数;
max_input_nesting_level=64,设置输入变量的嵌套深度;
max_input_vars=60;接受多少输入的变量,减轻dos攻击的可能性,如果超过指定数量的变量,将会导致E_WARNING的产生,更多的输入变量将会从请求中截断;
memory_limit=128M。最大单线程的独立内存使用量,也就是一个web请求,给予线程的最大内存使用量的定义。
还有一些错误信息说明,基本都是英文的字面意思,找不见临时目录啊大小超过限制啊之类的共8中错误信息,分别对应数字0-8但是没有数字5,在代码里进行判定输出,按照一一对应的,可以用switch……case,共7个case(0表示成功就不用写了)来表示输出错误信息。在代码中进行判定,如果没错误输出的话,就进行上传操作。
客户端的一些配置---但是在客户端的配置很多时候并不能真正起到限制作用,真正想限制都是要配置在服务端的:
通过表单隐藏域限制上传文件的最大值
通过accept属性限制上传文件类型
在这个练手的过程中,我没有认识到一点,form表单最大上传限制(程序中的判定)和底层php的判定(php.ini中),因此如果我表单的最大上传限制为2M,而php.ini中的判定是10M,这样在我上传文件大小超过10M时肯定就直接提示代码错误,而当上传文件大小介于2M和10M之间时,程序可以执行,按照判定输出对应的错误信息。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
