php进阶——01 文件上传

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaoen666/article/details/80610357

php.ini相关参数


file_uploads

是否允许PHP上传文件,默认为ON


upload_tmp_dir

上传文件在处理之前,必须先上传到服务器上的某个临时文件夹;

此参数就是决定临时目录的路径,此目录需要有读写权限。

一般不需要改。


max_input_time

对POST/GET/PUT方式接收数据的时间限制,单位s。


max_execution_time

等待脚本执行完毕的最长时间,单位s。

如果需要上传大文件,此配置数值不能过小!


upload_max_filesize

允许上传文件的最大值,默认为2MB。


post_max_size

控制POST方式提交表单时,允许接收的最大数据量(MB);

由于POST数据除了文件,还有可能包含其他表单数据,此值应大于upload_max_filesize的值。


memory_limit

PHP的内存使用上限,避免脚本过量使用系统资源;

由于上传是内存处理得数据中除了POST数据外可能包含其他数据,此值应大于post_max_size的值。



相关错误

这里写图片描述




单文件上传


html代码

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input name="upload" type="file">
    <input type="submit" value="上传文件">
</form>


php代码

1.我们通过$_FILES获取上传的文件信息;

2.它返回的值是一个数组:

[upload] => [
     [name] => 文件名
     [type] => 文件类型
     [tmp_name] => 临时路径 + 临时文件名
     [error] => 错误类型
     [size] => 大小
 ]

3.具体代码如下

 // 1.获取错误码
 $error = $_FILES['upload']['error'];

 // 2.临时路径名       ↓这里的key和input的name一致
 $tmp_name = $_FILES['upload']['tmp_name'];

 // 3.目的路径名
 $final_name = './upload/'.$_FILES['upload']['name'];


 // 4.错误校验
 if($error){

     // 5.根据错误码,返回相应错误信息
    switch($error){
        case 1:
        case 2:
            echo "文件大小超出限制";

        case 3:
            echo "文件上传不完整";

        case 4:
            echo "未选中上传文件";
     }

// 6.如果没有错误
}else{

    // 7.移动上传的文件
    $result = move_uploaded_file($tmp_name, $final_name);

    // 8.输出信息
    echo $result ? "上传成功" : "上传失败";
}

猜你喜欢

转载自blog.csdn.net/lihaoen666/article/details/80610357
今日推荐