0

我正在使用 Apache2 上的 PHP 在我的网站上测试上传,但我遇到了一些问题:我可以上传 40k 文件但不超过 100K move_uploaded_file 发送给我假。尽管我将 php.ini 设置为接受 500Mo 文件进行测试。我也把它放在脚本的末尾:

set_time_limit(0);
ini_set('upload_max_filesize', '500M');
ini_set('post_max_size', '500M');
ini_set('max_input_time', 4000);
ini_set('max_execution_time', 4000); 

这也是我的代码:

<?php
set_time_limit(0);
ini_set('upload_max_filesize', '500M');
ini_set('post_max_size', '500M');
ini_set('max_input_time', 4000);
ini_set('max_execution_time', 4000);

$dossier = $_SERVER['DOCUMENT_ROOT'].'/upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 

if(!in_array($extension, $extensions))
{
     $erreur = 'WRONG EXTENSION';
}
if($taille>$taille_maxi)
{
     $erreur = 'TOO HEAVY';
}


if(!isset($erreur))
{
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
     {
          echo 'Upload OK !';
     }
     else
     {
          echo 'Upload Error';

     }
}
else
{
     echo $erreur;
}
?>

我总是得到答案“上传错误”而没有任何 PHP 错误:

     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
     {
          echo 'Upload OK !';
     }
     else
     {
          echo 'Upload Error';

     }

提前感谢您的帮助!祝你今天过得愉快。

4

0 回答 0