PHP文件的上传

<?php
header('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()文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传的文件移动到新位置.


你可能感兴趣的:(PHP,上传文件,文件管理)