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等.....时显示
试试这个代码
$allowed_exts = array('.png','.gif','.jpg','.jpeg') ; // Our Allowed Extentions
$errors = array() ; // Our Error Array
$file_name = $_FILES['image']['name'] ;
$file_size = $_FILES['image']['size'] ;
$file_ext = strtolower(strrchr($file_name,'.')); // File Extention
if(!in_array($file_ext,$allowed_exts))
{
array_push($errors,'NoT Allowed');
}
elseif($file_size > 2097152)
{
array_push($errors,'More Than 2 mb');
}
if(count($errors) > 0)
{
var_dump($errors) ;
}
else
{
$new_name = substr(md5(rand().time()),0,8).$file_ext ;
$upload = move_uploaded_file($_FILES['image']['tmp_name'],$avatar_folder.$new_name ) ;
if($upload)
{
echo 'Image Uploaded ';
}
else
{
var_dump($errors) ;
}
}
编写test.php并放置以下代码:
phpinfo();
此代码将打印服务器配置页。查找"upload_max_filesize"的值。它告诉你可以上传多大的文件
如果这个值太小,大多数托管公司允许在。htaccess文件中使用以下行修改它:
php_value upload_max_filesize 50M
顺便说一下,你的代码不检查错误。在顶部,您需要添加以下行:
if ($_FILES['image']['error'] == UPLOAD_ERR_OK) {
//do your code
} else {
echo $_FILES['audio']['error'];
//Error messages explained here: http://php.net/manual/en/features.file-upload.errors.php
}