由于本人要实现将游戏中的错误包上传到服务器,初步用php写了一个简单的测试小例子,大家可以拿来直接运行
表单:upload.html
<html>
<body><form action="ReceiveFile.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form></body>
</html>
ReceiveFile.php
<?php
/* 设定上传目录 */
$dest_dir='./upload';
/* 检测上传目录是否存在 */
if( !is_dir($dest_dir) || !is_writeable($dest_dir) )
{
die("上传目录 ".$dest_dir." 不存在或无法写入");
}
/* 设置允许上传文件的类型 */
$type=array("rar","zip","txt","c","JPG");
/* 获取上传文件信息 */
// $upfile=&$HTTP_POST_FILES['file'];
$upfile=$_FILES["file"];
//echo "Upload: " . $_FILES["file"]["name"] . "<br />";
//echo "Type: " . $_FILES["file"]["type"] . "<br />";
//echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
//echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
/* 获取文件后缀名函数 */
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//echo "Temp file: " . fileext($upfile['name'] . "<br />";
/* 判断上传文件类型 */
if( !in_array( strtolower( fileext($upfile['name'] ) ),$type) )
{
$text=implode(",",$type);
echo "对不起,您只能上传以下类型文件: ",$text,"<br>";
}
else
{
/* 设置文件名为"日期_文件名" */
$dest=$dest_dir.'/'.date("ymdHis")."_".$upfile['name'];
/* 移动上传文件到指定文件夹 */
$state=move_uploaded_file($upfile['tmp_name'],$dest);
if ($state)
{
print("文件上传成功!<br>");
print("文件名:".$dest."<br>");
print("上传的文件大小:".( round($upfile['size'] / 1024,2) )." KB<br>");
}
else
{
/* 处理错误信息 */
switch($upfile['error'])
{
case 1 : die("上传文件大小超出 php.ini:upload_max_filesize 限制<br>");
case 2 : die("上传文件大小超出 MAX_FILE_SIZE 限制<br>");
case 3 : die("文件仅被部分上传<br>");
case 4 : die("没有文件被上传<br>");
case 5 : die("找不到临时文件夹<br>");
case 6 : die("文件写入失败<br>");
}
}
}
?>