我想有一个HTTP POST PHP脚本,其中包括文件上传。 PHP脚本应该拒绝任何文件,这是不正确的类型,否则畸形。
这意味着
- PHP脚本开始执行之前,上传完成后,
- 它读取文件的第一个X字节,
- 也许中止连接之前已上传完毕。
我该怎么做各的这些?
我想有一个HTTP POST PHP脚本,其中包括文件上传。 PHP脚本应该拒绝任何文件,这是不正确的类型,否则畸形。
这意味着
我该怎么做各的这些?
PHP不能中止上传。 但是,你可以验证$_FILES
后的文件被完全地上传。
该功能可以使用户上传文本和二进制文件。 用PHP的认证和文件操作函数,可以有超过谁被允许上传的,什么是与文件做一次上载已完全控制。
看到:
http://php.net/manual/en/features.file-upload.post-method.php
你可以在你的php.ini限制文件大小
upload_max_filesize的整数
上传文件的最大尺寸。 当使用一个整数,该值以字节为单位。 简化符号,如在本FAQ所描述的,也可以使用。
http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
这是你能得到最大的。
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>