• 技术文章 >php教程 >PHP源码

    php简单文件上传$_FILES与move_uploaded_file实现文件上传

    2016-06-08 17:25:41原创666

    php教程简单文件上传$_files与move_uploaded_file实现文件上传

    $_files["file"]["name"] - 被上传文件的名称
    $_files["file"]["type"] - 被上传文件的类型
    $_files["file"]["size"] - 被上传文件的大小,以字节计
    $_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
    $_files["file"]["error"] - 由文件上传导致的错误代码
    这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。

    注释:对于 ie,识别 jpg 文件的类型必须是 pjpeg,对于 firefox,必须是 jpeg。

    /*
    *$formname html上传表单名称
    *$allowtype_array 允许上传的文件类型数组
    *$allow_size 允许上传的文件最大大小,默认是1mb
    *$isrename 是否需要重命名被上传的文件
    */
    function upload_file($formname,$path,$allowtype_array,$allow_size='1048576',$isrename=true){
    if($_files[$formname]['tmp_name']=='' || $_files[$formname]['name']=='' || $_files[$formname]['size']==0){
    return false;
    }
    if(!file_exists('../uploadfiles/'.$path)){
    if(!mkdir('../uploadfiles/'.$path,0777)){
    writeerrmsg('创建上传文件保存文件目录失败,请联系管理员检查目录权限');
    }
    }
    if($_files[$formname]['size']>$allow_size){
    writeerrmsg('上传文件过大,请将上传文件限制在'.number_format($allow_size/1048576,'2','.','').'mb以内');
    }
    $file_name_array=explode('.',$_files[$formname]['name']);
    $file_type=strtolower($file_name_array[count($file_name_array)-1]);
    if(!in_array($file_type,$allowtype_array)){
    writeerrmsg('上传文件类型错误,仅允许上传后缀名为 .'.implode(' .',$allowtype_array).'的文件');
    }
    $save_name=$isrename?randomname().'.'.$file_type:$_files[$formname]['name'];
    if(!move_uploaded_file($_files[$formname]['tmp_name'],'../uploadfiles/'.$path.'//m.sbmmt.com/m/'.$save_name)){
    writeerrmsg('文件上传过程中发生错误,请重新上传');
    }
    switch($_files[$formname]['error']){
    case 0:
    return $save_name;
    break;
    case 1:
    writeerrmsg('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
    break;
    case 2:
    writeerrmsg('上传文件的大小超过了 html 表单中 max_file_size 选项指定的值');
    break;
    case 3:
    writeerrmsg('文件只有部分被上传');
    break;
    case 4:
    writeerrmsg('没有文件被上传');
    break;
    default:
    writeerrmsg('能出现这条错误提示,日子也该混到头了');
    break;
    }
    }

    move_uploaded_file
    本函数检查并确保由 file 指定的文件是合法的上传文件(即通过 php 的 http post 上传机制所上传的)。如果文件合法,则将其移动为由 newloc 指定的文件。

    如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。

    如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。

    这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp file quot files writeerrmsg
    上一篇:php文件上传代码详细 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP根据图片色界在不同位置加水印的方法• PHP实现301跳转,及延时跳转代码• 根据访客所在城市ip地址自动跳转到分站的php代码• php入门教程-留言板程序• 字符串截取函数
    1/1

    PHP中文网