我正在尝试使用PHP在我的服务器上上传文件, 但它失败了:
move_uploaded_file()
返回false。
我的文件是230,000个字符(224 ko)的文本文件
但是,如果我尝试将文件缩小到4500个字符,那么效果很好。
是否有最多的字符数?
<?php
$host="";
$user="";
$pass="";
//$db = mysql_connect($host,$user,$pass);
//mysql_select_db('paul_biaudet',$db);
$dossier = 'update-';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.txt','.doc');
$extension = strrchr($_FILES['avatar']['name'], '.');
//security
if(!in_array($extension, $extensions))
{
$erreur = 'Vous devez uploader un fichier texte';
}
if($taille>$taille_maxi)
{
$erreur = 'too big';
}
if($_FILES['avatar']['name']!='shapes.txt' && $_FILES['avatar']['name']!='routes.txt' ){
$erreur='...';
}
if(!isset($erreur)) //no error : upload
{
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
{
...
}
else
{
echo 'fail';
}
而且......这是一次失败
答案 0 :(得分:3)
检查你的html代码是否有MAX_FILE_SIZE,例如
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
检查upload-max-filesize和post-max-size 看到: http://www.php.net/manual/fr/ini.core.php#ini.upload-max-filesize
和
http://www.php.net/manual/fr/ini.core.php#ini.post-max-size
结果是什么:
<?php
echo ini_get('upload-max-filesize'),'<br />'
,ini_get('post-max-size'),'<br />';
?>
修改强>
upload_max_filesize = 2M且post_max_size = 8M
...奇怪 尝试使用以下内容进行上传:
ini_set('upload-max-filesize', '10M');
ini_set('post_max_size', '10M');