Loading
0

一段完整的PHP单文件上传测试代码及PHP多文件上传测试代码

1000x200

前言:在处理问题过程中经常遇到用户的程序无法上传文件,大部分用户认为他的程序无问题,是服务器本身问题,为了检测是否是服务器或程序问题,可以使用如下php上传测试代码检测一下看是否可以上传,若可以上传,则需要检查程序。支持单个文件上传检测及多个文件上传检测
使用方法:创建一个php文件,例如 test.php ,然后将如下代码复制到test.php并上传到网站根目录,https://blog.tag.gg/test.php访问这个文件上传测试下(将地址和文件更换为您自己的信息)
效果如图

上传后截图:

代码:

<meta charset="UTF-8" />
<?php
/*******
author:hring
blog.tag.gg转载
date:2012-5-14
//检查服务器上传功能
//实现单个或者多个文件上传
*********/
//header( ' <meta charset="UTF-8" />' );

session_start();
$auth_pass = 'e10adc3949ba59abbe56e057f20f883e';
//MD5加密值123456, 留空不验证
if ( isset( $_GET[ 'act' ] ) && $_GET[ 'act' ] == 'del' ) {
    //删除测试文件
    $filename = basename( $_SERVER[ 'PHP_SELF' ] );
    @unlink( $filename );
    exit( 'Error:File Not Found!' );
}

function Login() {
    die( "<pre align=center><b>Input Passwd</b><br><form method=post>Password: <input type=password name=pass><input type=submit value='GO'></form></pre>" );
}

if ( !isset( $_SESSION[ 'access' ] ) )
if ( empty( $auth_pass ) || ( isset( $_POST[ 'pass' ] ) && ( md5( $_POST[ 'pass' ] ) == $auth_pass ) ) )
$_SESSION[ 'access' ] = 'OK';
else
Login();

function getcon( $varName )
 {
    switch( $res = get_cfg_var( $varName ) )
 {
        case 0:
        return NO;
        break;
        case 1:
        return YES;
        break;
        default:
        return $res;
        break;
    }

}
?>
<fieldset>
<legend>服务器相关信息:</legend>
file_uploads = <?= getcon( 'file_uploads' )?><br />
upload_max_filesize = <?= getcon( 'upload_max_filesize' )?><br />
post_max_size = <?= getcon( 'post_max_size' )?><br />
当前文件相当路径:<?= $_SERVER[ 'PHP_SELF' ]?><br />
当前文件绝对路径:<?= $_SERVER[ 'SCRIPT_FILENAME' ]?><br />
</fieldset>
<?php
if ( getcon( 'file_uploads' ) == 'NO' ) {
    die ( '<font color=red>服务器禁止上传!</font>' );
}

function dir_exists() {
    if ( !file_exists( 'blog_tag_gg' ) ) {
        mkdir( 'blog_tag_gg', 0777 );
        echo 'blog_tag_gg目录不存在,新建目录成功!'.'<br/>';
    } else {
        echo 'blog_tag_gg目录已经存在'.'<br/>';
    }
}
if ( $_POST[ 'act' ] == '单个文件上传测试' ) {
    if ( $_POST[ 'repeart' ] == $_SESSION[ 'num' ] ) {
        $temarr = $_FILES[ 'filename' ];
        if ( $temarr[ 'name' ] != '' ) {
            foreach ( $temarr as $name=>$value ) {
                if ( $name == 'size' )
                echo 'filesize: '. round( $value /1024, 2 ) .'KB <br/>';
                else
                echo $name.':'.$value.'<br/>';
            }
            if ( is_uploaded_file( $temarr[ 'tmp_name' ] ) ) {
                $updir = 'blog_tag_gg/'.$temarr[ 'name' ];
                $updir = iconv( 'utf-8', 'gbk', $updir );
                if ( !file_exists( $updir ) ) {
                    dir_exists();
                    if ( move_uploaded_file( $temarr[ 'tmp_name' ], $updir ) )
                    echo '<font color=red >'.$temarr[ 'name' ].'上传成功</font>'.'<br/><br/>';
                    else
                    die( 'blog.tag.gg提醒:上传失败!' );
                } else {
                    echo'<font color=red >'.$temarr[ 'name' ].'blog.tag.gg提醒:已经存在,上传中止!</font>'.'<br/><br/>';
                }
            }

        } else {
            echo '没有选择上传文件!'.'<br/>';
        }
    } else {
        echo '<br/><font color=red >blog.tag.gg提醒:请勿刷新,会造成重复上传!!</font><br/><br/>';
    }
} elseif ( $_POST[ 'act' ] == '多个文件上传测试' ) {
    if ( $_POST[ 'repeart' ] == $_SESSION[ 'num' ] ) {
        $filename = $_FILES[ 'upfile' ][ 'name' ];
        $filetype = $_FILES[ 'upfile' ][ 'type' ];
        $file_tem_name = $_FILES[ 'upfile' ][ 'tmp_name' ];
        $filesize = $_FILES[ 'upfile' ][ 'size' ];
        if ( $filename[ 0 ] != '' ) {
            $a = count( $filename );
            for ( $i = 0; $i<$a; $i++ ) {
                if ( $filename[ $i ] != '' ) {
                    echo 'name: '.$filename[ $i ].'<br/>'.
                    'type: '.$filetype[ $i ].'<br/>'.
                    'tem_name: '.$file_tem_name[ $i ].'<br/>'.
                    'filesize: '.round( $filesize[ $i ]/1024, 2 ) .'KB <br/>';
                    dir_exists();
                    $updir = 'blog_tag_gg/'.$filename[ $i ];
                    $updir = iconv( 'utf-8', 'gbk', $updir );
                    if ( !file_exists( $updir ) ) {
                        if ( move_uploaded_file( $file_tem_name[ $i ], $updir ) )
                        echo '<font color=red >'.$filename[ $i ].'上传成功</font>'.'<br/><br/>';
                        else
                        die( 'blog.tag.gg提醒:上传失败!<br/><br/>' );
                    } else echo( '<font color=red >'.$filename[ $i ].'已经存在,上传中止!</font>'.'<br/><br/>' );
                }
            }
        } else {
            echo '没有选择上传文件!';
        }
    } else {
        echo '<br/><font color=red >请勿刷新,会造成重复上传!!</font><br/><br/>';
    }
}
$butn = mt_rand( 100, 1000 );
$_SESSION[ 'num' ] = $butn;
?>
<fieldset><br />

<legend>单个文件上传</legend>
<form name = 'form1' method = 'post' action = '' enctype = 'multipart/form-data'>
<input name = 'filename' type = 'file'><br /><br />
<input type = 'hidden' name = 'repeart' value = "<?=$butn ?>">
<input type = 'submit' name = 'act' value = '单个文件上传测试'>
</form>
</fieldset><br />
<fieldset>
<legend>多个文件上传</legend>
<form method = 'post' action = '' enctype = 'multipart/form-data'>
<input name = 'upfile[]' type = 'file'><br /><br />
<input name = 'upfile[]' type = 'file'><br /><br />
<input name = 'upfile[]' type = 'file'><br /><br />
<input type = 'hidden' name = 'repeart' value = "<?=$butn ?>">
<input type = 'submit' name = 'act' value = '多个文件上传测试'>
</form>
</fieldset><br />


 
1000x200

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-24-36178-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:PHP页面输入密码才可以查看到内容代码
下一篇:返回列表