我正在使用 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';
}
提前感谢您的帮助!祝你今天过得愉快。