前言:在处理问题过程中经常遇到用户的程序无法上传文件,大部分用户认为他的程序无问题,是服务器本身问题,为了检测是否是服务器或程序问题,可以使用如下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 />
文章评论 本文章有个评论