|
|
|
| Народ подскажите скрипт ругается при загрузки файлов >30мегов(в php.ini, upload_max_filesize = 500M)
Warning: copy() [function.copy]: Filename cannot be empty in /var/www/mail/php/test/upload.php on line 14
Ошибка загрузки файла
Собственно типа имя файла не может быть пустым. И действительно при загрузке больших файлов массив $_FILES["filename"] -становиться пустым. Скрипт запускаю на Linux машине. С мелкими файлами все ok.
<html>
<head><META HTTP-EQUIV='Content-Type CONTENT=text/html; charset=UTF-8'></head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if($_FILES["filename"]["size"] > 1024*500*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"/var/www/mail/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>
|
| |
|
|
|
|
|
|
|
для: Eser
(22.11.2010 в 17:59)
| | Ошибка Вам говорит, что имя файла не может быть пустым.
Вот и проверяйте, где Вы теряете это имя.
В самом начале php кода вывидите дам массива FILES , что бы Вам было видно, что в нём находится.
Не используйте функцию copy().
Для загрузки больших файлов одной директивы upload_max_filesize мало, на загрузку влияют значение и других директив. | |
|
|
|
|
|
|
|
для: slo_nik
(22.11.2010 в 18:42)
| | Почитал спасибо но проблему все равно не понимаю как решить. В одной из статей было:
Если Вы получили сообщение "POST Method Not Allowed" то надо сделать
<Limit POST >
Order allow,deny
Allow from all
</Limit>
Но такого сообщения не появляеться, да и чего то похожего в httpd.conf я не нашел
Используя move_uploaded_file(), такая же фигня(маленькие файлы загружаются, а большие нет). Делаю уже в Windows.
В php.ini установил post_max_size=500M, ну и upload_max_filesize = 500M
<form action="upload.php" method="post" enctype="multipart/form-data">
В начале написал print_r($_FILES) вот что он выводит при загрузке большого файла в 40Мб:
Array ( [filename] => Array ( [name] => avira_antivir_personal_en.exe [type] => [tmp_name] => [error] => 1 [size] => 0 ) ) Ошибка загрузки файла
|
Тута мне здается что где в настройках php или apache что нужно поменять и разрешить. Вот только что? | |
|
|
|
|
|
|
|
для: Eser
(22.11.2010 в 21:25)
| | [error] => 1 говорит о том, что размер файла больше, чем установлено директивой upload_max_filesize в php.ini
Проверьте внимательней Ваши настройки
p.s. Больше ни каких ошибок/предупреждений скрипт не выдаёт? | |
|
|
|
|
|
|
|
для: Eser
(22.11.2010 в 21:25)
| | >Тута мне здается что где в настройках php или apache что нужно поменять и разрешить. Вот только что?
Тут мне здается, что php.net/upload Вы не читали... | |
|
|
|
|
|
|
|
для: Eser
(22.11.2010 в 17:59)
| | post_max_size | |
|
|
|