【发布时间】:2014-02-28 00:32:18
【问题描述】:
我正在关注书中的一些 php 示例,并正在研究它们。下面的代码假设使用 switch 语句验证上传的文件类型是否匹配设置的有效类型。有效类型为:jpeg、png、tiff 和 gif。但是,代码似乎总是采用默认语句并跳出循环。我什至已经从网站上下载了示例,并且出现了同样的问题!
echo <<<_END
<html><head><tile>PHP Form Upload</title></head>
<body>
<form method='post' action='upload2.php' enctype='multipart/form-data'>
Select a JPG, GIF, PNG or TIF File:
<input type='file' name='filename' size='10' />
<input type='submit' value='Upload' /></form>
_END;
if ($_FILES)
{
$name = $_FILES['filename']['name'];
switch ($_FILES['filename']['type'])
{
case 'image/jpeg': $ext = 'jpg'; break;
case 'image/gif': $ext = 'gif'; break;
case 'image/png': $ext = 'png'; break;
case 'image/tiff': $ext = 'tiff'; break;
default: $ext = ''; break;
}
if ($ext){
$n = "image.$ext";
move_uploaded_file($_FILES ['filename']['tmp_name'],$n);
echo "Uploaded image '$name' as '$n':<br />";
echo "<img src='$n'";
}
else echo "'$name' is not a valid image file";
}
else echo "No image has been uploaded";
echo "</body></html>"
?>
如果我说上传图片'image.jpg',它应该将$ext设置为.$jpg然后执行上传,但我只是得到了else语句:
else echo "'$name' is not a valid image file";
【问题讨论】:
-
你绑定打印
$_FILES['filename']['type']看看为什么走错路了吗? -
我还没有,很快就会这样做。我尝试放置一些简单的回声语句,但并没有太大帮助。
标签: php html forms switch-statement