【发布时间】:2011-12-04 08:21:52
【问题描述】:
php代码:
<?php
if (isset($_FILES['image'])) {
$errors = array();
$allowed_ext = array ('jpg','gif','png','jpeg');
$file_name = $_FILES ['image']['name'];
$file_ext = explode('.', $file_name);
$file_ext = end ($file_ext);
$file_ext = strtolower($file_ext);
echo $file_ext;
$file_size = $_FILES ['image']['size'];
$file_tmp = $_FILES ['image']['tmp_name'];
if (!in_array($file_ext, $allowed_ext)) {
$errors[] = "File extension is not allowed.";
}
if ($file_size > 2097152 ) {
$errors[] = "File size is greater than 2 megabytes.";
}
if (count($errors) > 0) {
foreach ($errors AS $error) {
echo $error . "<br />";
}
} else {
$file_name = md5(microtime()).".".$file_ext;
if (move_uploaded_file($file_tmp, $avatar_folder.$file_name)) {
}
}
}
?>
html代码:
<div id="form_part">
<form action="" method="POST" enctype="multipart/form-data">
<p>
<input type="FILE" name="image">
<input type="submit" value="upload">
</p>
</form>
</div> <!-- end form_part -->
现在,问题是如您所见,我在数组中指定图像文件类型以允许上传特定扩展名并阻止其他扩展名,如果此数组中不存在文件类型但当我测试时返回错误消息对于视频文件,文件未上传到上传目录,但错误消息未显示,虽然在我上传 txt、rar、pdf 等时显示它......,为什么会这样,我该如何解决?
【问题讨论】:
-
flv , avi , mp4 , vob , ts 文件,这是我测试的文件。
-
可能是 PHP 上传错误。尝试回显 $_FILES['image']['error']。以下是可能的错误列表 [link]php.net/manual/en/features.file-upload.errors.php