PHP melaksanakan fungsi muat naik berkapsul untuk muat naik dan muat turun fail
Enkapsulasi fungsi muat naik
Kami merangkum fungsi muat naik di atas ke dalam fungsi, kodnya adalah seperti berikut:
fun_upload.php
<?php //定义一个uploadFile函数 function uploadFile($fileInfo,$path,$allowExt,$maxSize){ //取出$_FILES中的数据 $filename=$fileInfo["name"]; $tmp_name=$fileInfo["tmp_name"]; $size=$fileInfo["size"]; $error=$fileInfo["error"]; $type=$fileInfo["type"]; //取出文件路径中文件的类型的部分 $ext=pathinfo($filename,PATHINFO_EXTENSION); //确定是否存在存放图片的文件夹,没有则新建一个 if (!file_exists($path)) { //当目录不存在,就创建目录 mkdir($path,0777,true);//创建目录 chmod($path, 0777);//改变文件模式,所有人都有执行权限、写权限、度权限 } //得到唯一的文件名!防止因为文件名相同而产生覆盖 $uniName=md5(uniqid(microtime(true),true)).'.'.$ext; //目标存放文件地址 $destination=$path."/".$uniName; //当文件上传成功,存入临时文件夹,服务器端开始判断 if ($error==0) { if ($size>$maxSize) { exit("上传文件过大!"); } if (!in_array($ext, $allowExt)) { exit("非法文件类型"); } if (!is_uploaded_file($tmp_name)) { exit("上传方式有误,请使用post方式"); } //判断是否为真实图片(防止伪装成图片的病毒一类的 if (!getimagesize($tmp_name)) {//getimagesize真实返回数组,否则返回false exit("不是真正的图片类型"); } if (@move_uploaded_file($tmp_name, $destination)) {//@错误抑制符,不让用户看到警告 echo "文件".$filename."上传成功!"; }else{ echo "文件".$filename."上传失败!"; } }else{ switch ($error){ case 1: echo "超过了上传文件的最大值,请上传2M以下文件"; break; case 2: echo "上传文件过多,请一次上传20个及以下文件!"; break; case 3: echo "文件并未完全上传,请再次尝试!"; break; case 4: echo "未选择上传文件!"; break; case 7: echo "没有临时文件夹"; break; } } return $destination; }
Halaman borang menggunakan yang sebelumnya:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no" /> <title>文件上传(客户端限制)</title> <meta charset="utf-8" /> </head> <body> <form action="upload3.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="101321" /> 请选择您要上传的文件: <input type="file" name="myFile" accept="image/jpeg,image/gif,text/html"/><br/> <input type="submit" value="上传"/> </form> </body> </html>
Halaman pemprosesan penyerahan
muat naik3 .php
<?php header('content-type:text/html;charset=utf-8'); //初始化相关变量 $fileInfo=$_FILES["myFile"]; $maxSize=10485760;//10M,10*1024*1024 $allowExt=array('jpeg','jpg','png','tif'); $path="uploads"; //引入前面封装了的上传函数fun_upload.php include_once 'fun_upload.php'; uploadFile($fileInfo, $path, $allowExt, $maxSize);
Komennya sangat terperinci Anda boleh menyalinnya secara setempat untuk menguji dan belajar pada masa yang sama
Kami boleh memanggilnya terus selepas menggunakannya. Adakah ia sangat mudah? Kami akan menggunakannya dalam bahagian seterusnya bagi muat naik berbilang fail ini