读头后中止上传大量上载(Abort upload large uploads after readi

2019-09-21 03:46发布

我想有一个HTTP POST PHP脚本,其中包括文件上传。 PHP脚本应该拒绝任何文件,这是不正确的类型,否则畸形。

这意味着

  1. PHP脚本开始执行之前,上传完成后,
  2. 它读取文件的第一个X字节,
  3. 也许中止连接之前已上传完毕。

我该怎么做各的这些?

Answer 1:

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



Answer 2:

这是你能得到最大的。

<?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";
  }
?>


文章来源: Abort upload large uploads after reading headers
标签: php http sockets