php上传文件深度解析
本文主要和大家分享php上传文件深度解析,前面我们也和大家分享过很多php上传文件的文章,希望本文能帮助到大家。
1.php上传文件配置php.ini配置:
(1)file_uploads=on|off : 确定服务器上的 PHP脚本是否可以接受文件上传。
(2)max_execution_time=integer : PHP脚本在注册一个致命错误之前可以执行的最长时
间,以秒为单位。
(3)memory_limit=integer : 设置脚本可以分配到的最大内存,以MB为单位。这可以防
止失控的脚本独占服务器内存。
(4)upload_max_filesize=integer :设置上传文件最大大小,以MB 为单位。此指令必须小
于 post_max_size。
(5)upload_tmp_dir=string : 设置上传文件在处理之前必须存放在服务器的临时一个位置,
直到文件移动到最终目的地为止。
(6)post_max_size=integer :确定通过 POST方法可以接受的信息的最大大小,以MB 为
单位
2.php上传相关的方法
(1)bool is_uploaded_file(string $filename)
定义:is_uploaded_file() 函数判断指定的文件是否是通过 HTTP POST 上传的
参数 $filename : $_FILES['file_img']['tmp_name'](举例)
规定要检查的文件:C:\Windows\Temp\php9632.tmp
(2)bool move_uploaded_file ( string $filename , string $destination )
定义:move_uploaded_file () 函数将上传的文件移动到新位置 一般和is_uploaded+_file()方法配合使用
参数 $filename : $_FILES['file_img']['tmp_name'](举例)
规定要移动的文件 : C:\Windows\Temp\php9632.tmp
$destination :dirname(__FILE__).DS.'uploads'.DS.$_FILES['file_img']['name'](举例)
规定要移动的文件位置:D:\myWAP\myWeb\learn\php_upload\uploads\hm_g_img.jpg
3.php上传案例:规定只能上传图片文件
(1) 必要文件夹和文件
(2)file_unload_select.php 文件用于文件的HTML浏览选择,上传点击:
enctype = "multipart/form-data" 固定写法,不然文件上传失败
action = "url"
method="post" 一般上传都是post
(3)upload.php 文件用于处理上传文件 判断上传文件类型 以及 移动文件到服务器指定目录:
//接收上传文件 print_r($_FILES); define('DS',DIRECTORY_SEPARATOR); //判断当前上传的文件是否为图片 $img_type_arr = array('image/png','image/jpeg','image/jpeg'); //for循环遍历数组 -- 第一方法判断是否为数组中的子项 for($i=0;$i<count($img_type_arr);$i++) { if($img_type_arr[$i] != $_FILES['file_img']['type'] && ($i == count($img_type_arr)-1) ) { echo "" exit; } } //数组方法array_in() -- 第二方法判断是否为数组中的子项 if(!is_uploaded_file($_FILES['file_img']['tmp_name'])) { //如果临时文件不存在,则说明没有上传到临时文件夹 echo '上传到临时文件夹失败'; } else { //echo '上传到临时文件夹成功'; $img_path = dirname(__FILE__).DS.'uploads'.DS.$_FILES['file_img']['name']; //echo $img_path; //进行移动文件到服务器地址 if(@move_uploaded_file($_FILES['file_img']['tmp_name'],$img_path)) { //显示图片 echo "<img src=".$img_path." />" } else { cho '移动文件失败'; } }
(4)show_image.php 用于接收图片文件路径显示上传成功的图片:
$img_path = $_GET['url']; echo "";
(5)上传最核心的就是利用$_FILES的子项参数,完成上传和判断:
Array ( [file_img] => Array ( [name] => news_001_01.jpg [type] => image/jpeg [tmp_name] => C:\Windows\Temp\php504D.tmp [error] => 0 [size] => 158360 ) )
分析:
$_FILES['file_img']['name'] : news_001_01.jpg 上传文件名称
$_FILES['file_img']['type'] : image/jpeg 上传文件的类型
$_FILES['file_img'][' tmp_name '] : C:\Windows\Temp\php504D.tmp 该上传文件临时文件的存放路径
$_FILES['file_img']['error '] : 0 , 1, 2, 3, 4
0 -> 表示文件上传成功
1 -> 表示上传文件的大小超出了约定值(PHP.ini指定)
2 -> 表示上传文件的大小超出了约定值(HTML表单指定)
3 -> 表示文件只被部分上载
4 -> 表示没有上传任何文件
相关推荐:
Atas ialah kandungan terperinci php上传文件深度解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.
