国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison php教程 php手冊 PHP 文件上傳全攻略

PHP 文件上傳全攻略

Jun 13, 2016 pm 12:16 PM
ENC html php Télécharger Stratégie complète ajouter exister déclaration propriété document utilisateur de Formulaire vouloir partie

1.表單部分
允許用戶上傳文件,在HTML表單的聲明中要加上一個上傳的屬性:
enctype = 'multipart/form-data'
表單的method必須是POST
表單選項MAX_FILE_SIZE隱藏域用于限制上傳文件大小,它必須放在文件表單元素前面,單位為字節(jié)。
如:

復(fù)制代碼 代碼如下:







2.處理上傳文件
上傳時,PHP收到關(guān)于該文件的信息數(shù)組,這些信息可以在$_FILES這個超級全局數(shù)組中找到。
如:如果表單中的文件輸入框名字為upload_file,那么關(guān)于該文件的所有信息都包含在數(shù)組$_FILES['upload_file']里面。
如:客戶上傳了一個“aaa.jpg”的圖片數(shù)組值如下:
name "p5pp.jpg" 上傳時文件的名字
type “image/jpeg" 文件類型
tmp_name "/tmp/phpjksdf" 服務(wù)器端的臨時文件名
error 上傳錯誤的返回值
size 2045 文件實際大小

上面數(shù)組里面的error會返回不同的常量值,如下:
UPLOAD_ERR_OK 沒有錯誤發(fā)生,文件上傳成功
UPLOAD_ERR_INI_SIZE 文件大小超過了PHP.INI中upload_max_filesize選項限制的值
UPLOAD_ERR_FORM_SIZE 上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項值??稍诔绦蛑袡z查表單$FILES ['up_file']['size']來處理
UPLOAD_ERR_PARTIAL 文件只有部分被上傳
UPLOAD_ERR_NO_FILE 用戶沒有提供任何文件上傳
上傳后處理的具體例子:

復(fù)制代碼 代碼如下:


if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){
echo "error";
}


函數(shù):
move_uploaded_file 移動上傳的臨時文件到指定的目錄下
例子:
move_uploaded_file('臨時文件名','指定文件路徑')

is_uploaded_file 判斷是否是通過http Post上傳的文件
例子:

復(fù)制代碼 代碼如下:


if(!is_uploaded_file($_FILES['f']['tmp_name'])){
echo '非法';
}



3.相關(guān)參數(shù)

PHP上傳設(shè)計到的php.ini中的參數(shù):
file_uploads 是否允許上傳文件,默認ON

upload_tmp_dir 上傳文件防止的臨時目錄,未指定則使用系統(tǒng)默認位置

upload_max_filesize 允許上傳文件的大小的最大值,默認為2M

post_max_size 控制采用POST方法進行一次表單提交中PHP所能接受的最大數(shù)據(jù)量,如果希望用PHP文件上傳,則此值要改為比upload_max_filesize要大

max_input_time 以秒為單位對通過POST/GET/PUT方式接受數(shù)據(jù)時間進行限制。

memory_limit 為了避免正在運行的腳本大量使用系統(tǒng)內(nèi)存,PHP允許定義內(nèi)存使用限額。通過設(shè)置此參數(shù)來制定單個腳本程序可以使用的最大內(nèi)存容量,應(yīng)適當大于post_max_size值

max_execution_time 用來設(shè)置在強制終止腳本前PHP等待腳本執(zhí)行完畢的時間,單位秒。次選項可限制死循環(huán)腳本,但當存在一個長時間的合法活動時(如:上傳大文件),這項功能也會導(dǎo)致操作失敗。這樣情況下必須考慮將此變量增加。

4.考慮多文件上傳
可以利用$_FILES數(shù)組就可以輕松實現(xiàn)多文件上傳。$_FILES數(shù)組可以獲取客戶端表單里面所有的file域內(nèi)容,從而獲得所有在同一表單上傳的文件。

5.突破上傳的內(nèi)存限制

方法一:
修改php.ini中memory_limit值,改為更大,如 64M
方法二:
使用Apache Rewrite方法,動態(tài)修改memory_limit的值。首先建立一個.htaccess文件,保存在上傳文件程序的 當前目錄即可.代碼如下:
php_value memory_limit 100M
php_value post_max_size 30M
php_value upload_max_filesize 30M
php_value max_execution_time 300
php_value max_input_tim 300
php_value display_errors On
Déclaration de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment obtenir l'ID de session en cours dans PHP? Comment obtenir l'ID de session en cours dans PHP? Jul 13, 2025 am 03:02 AM

La méthode pour obtenir l'ID de session en cours dans PHP est d'utiliser la fonction session_id (), mais vous devez appeler session_start () pour l'obtenir avec succès. 1. Appelez session_start () pour démarrer la session; 2. Utilisez session_id () pour lire l'ID de session et sortir une cha?ne similaire à ABC123DEF456GHI789; 3. Si le retour est vide, vérifiez si session_start () est manquant, si l'utilisateur accède pour la première fois, ou si la session est détruite; 4. L'ID de session peut être utilisé pour l'exploitation forestière, la vérification de la sécurité et la communication croisée, mais la sécurité doit être prêtée attention. Assurez-vous que la session est correctement activée et que l'ID peut être obtenu avec succès.

Php obtient une sous-cha?ne à partir d'une cha?ne Php obtient une sous-cha?ne à partir d'une cha?ne Jul 13, 2025 am 02:59 AM

Pour extraire les sous-cha?nes de cha?nes PHP, vous pouvez utiliser la fonction substr (), qui est Syntax substr (String $ string, int $ start ,? int $ longueur = null), et si la longueur n'est pas spécifiée, elle sera interceptée à la fin; Lors du traitement des caractères multi-octets tels que le chinois, vous devez utiliser la fonction mb_substr () pour éviter le code brouillé; Si vous avez besoin d'intercepter la cha?ne en fonction d'un séparateur spécifique, vous pouvez utiliser exploit () ou combiner strpos () et substr () pour l'implémenter, tels que l'extraction d'extensions de nom de fichier ou de noms de domaine.

Comment effectuez-vous des tests unitaires pour le code PHP? Comment effectuez-vous des tests unitaires pour le code PHP? Jul 13, 2025 am 02:54 AM

UnittestingInphpinvolvesverifierifySindividualCodeUnits like outweethodstocatchbugSearlyAndensureReliveLerefactoring.1) setupphpunitviacomposer, createAtestDirectory, andconfigureAutoloadandphpunit.xml.2)

Comment diviser une cha?ne en un tableau en php Comment diviser une cha?ne en un tableau en php Jul 13, 2025 am 02:59 AM

Dans PHP, la méthode la plus courante consiste à diviser la cha?ne en un tableau à l'aide de la fonction Exploit (). Cette fonction divise la cha?ne en plusieurs parties via le délimiteur spécifié et renvoie un tableau. La syntaxe est Exploit (séparateur, cha?ne, limite), où le séparateur est le séparateur, la cha?ne est la cha?ne d'origine et la limite est un paramètre facultatif pour contr?ler le nombre maximum de segments. Par exemple $ str = "pomme, banane, orange"; $ arr = explosage (",", $ str); Le résultat est ["Apple", "Bana

Types de données JavaScript: référence primitive vs Types de données JavaScript: référence primitive vs Jul 13, 2025 am 02:43 AM

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Utilisation de STD :: Chrono en C Utilisation de STD :: Chrono en C Jul 15, 2025 am 01:30 AM

STD :: Chrono est utilisé en C pour traiter le temps, y compris l'obtention de l'heure actuelle, la mesure du temps d'exécution, le point de fonctionnement et la durée de l'opération et le temps d'analyse de formatage. 1. Utilisez STD :: Chrono :: System_clock :: Now () pour obtenir l'heure actuelle, qui peut être convertie en une cha?ne lisible, mais l'horloge système peut ne pas être monotone; 2. Utilisez STD :: Chrono :: standard_clock pour mesurer le temps d'exécution pour assurer la monotonie, et la convertir en millisecondes, secondes et autres unités via durée_cast; 3. Point de temps (temps_point) et durée (durée) peut être interopérable, mais l'attention doit être accordée à la compatibilité des unités et à l'époque de l'horloge (époque)

Comment PHP gère-t-il les variables d'environnement? Comment PHP gère-t-il les variables d'environnement? Jul 14, 2025 am 03:01 AM

TOACCESSENSIRONDAMENTVARIBLESSInPHP, useGettenv () Orthe $ _ENVSUPERGLOBAL.1.getenv ('var_name') RetrievesAsaspecificVariable.2. $ _ En V ['var_name'] AccesssaSVariblesifVariables_OrderInphp.iniIncluses "E" .setVariblesVICLIWithVar = ValuePpript.Php, INAPACH

Pourquoi nous commen?ons: un guide PHP Pourquoi nous commen?ons: un guide PHP Jul 15, 2025 am 02:48 AM

PhhasthreocommentStyles: //,#forsingle-lineand/.../formulti-line.USECOMENTSTOEXPLAINWHYCODEEXISTS,NOTHATITOES.Marktodo/fixmeitemsanddisableCodeTemporairementDuringDebugging.VoidOverCormentSimplelogic.

See all articles