<?phpheader('Content-type:text/html;charset=utf-8');if(isset($_POST['submit'])){//检测表单'submit'是否有上传,如果有上传继续下一步,如果没那就没反应if(is_uploaded_file($_FILES['myfile']['tmp_name'])){//检测指定文件是否通过HTTP POST上传的,如果是继续下一步,如果不是提示'可能有攻击!'$arr=pathinfo($_FILES['myfile']['name']);//输出返回路径的信息(具体返回什么看手册)$newName=date('YmdGis').rand(1000,9999);//按年月日后面加1000到9999随机数字输出文件名if(move_uploaded_file($_FILES['myfile']['tmp_name'],"upload/{$newName}.{$arr['extension']}")){//move_uploaded_file把该文件的移动到另一文件里面(该函数参数是写被移动文件和移到到目标文件的路径)//($arr['extension']这个函数根据返回路径的信息确定文件后缀名)//如果上传后的文件移动到目标目录成功则输出'上传成功!',否则输出'移动文件失败!'//为什么要在上传文件的同时写上文件名和后缀名?因为相同的文件名和后缀名会覆盖掉,所以要写这么个判断。 echo '上传成功!'; }else{ echo '上传文件失败!'; } }else{ exit('可能有攻击!'); }}var_dump($_FILES);?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"/><title>上传页面</title></head><body><form action="" method="post" enctype="multipart/form-data"><!-- 注意点:属性method和enctype设置 --><input type="file" name="myfile" /><!-- 上传控件 --><input type="submit" name="submit" value="开始上传" /><!-- 提交按钮 --></form></body></html>
步骤1:检测表单'submit'是否有上传,如果有上传继续下一步,如果没那就没反应。
步骤2:检测指定文件是否通过HTTP POST上传的,如果是继续下一步,如果不是提示'可能有攻击!'。
步骤3:move_uploaded_file把该文件的移动到另一文件里面(该函数参数是写被移动文件和移到到目标文件的路径)。
步骤4:要在上传文件的同时写上文件名和后缀名,因为如果不写,遇到相同的文件名和后缀名会覆盖掉,所以要写这么个判断。
步骤5:因为要判断,所以要写判断文件名和后缀名的公式。(详细看上面程序)
步骤6:上传文件,测试程序。
一.在上传前,我们需要设置与上传相关的php配置选项(php.ini)。
配置项 可能值 功能描述
file_uploads ON 确定服务器上的PHP脚本是否可以接受HTTP文件上传。
memory_limit 8M 设置脚本可以分配的最大内存量,防止失控的脚本独占 服务器内存。
upload_max_filesize 2M 限制PHP处理上传文件的最大值,此值必须小于 post_max_size值。
post_max_size 8M 限制通过POST方法可以接受的信息最大量。
upload_tmp_dir NULL 上传文件存放的临时路径,可以是一个绝对路径。这个目录对于拥有此服务器进程用户必须是可写的。
二.$_FILES多维数组:用于存储各种与上传有关的信息(输出后显示的信息)(具体看参考手册)
三.PHP文件的上传处理函数:用于上传文件的后续处理.
is_uploaded_file()判断指定的文件是否通过HTTP POST上传的
move_uploaded_file()文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传的文件移动到新位置.