Forum Webscript.Ru

Программирование => PHP => Тема начата: Grape от 11 Сентября 2003, 01:29:37

Название: Upload файла
Отправлено: Grape от 11 Сентября 2003, 01:29:37
Почему при загрузке файла через CMS на сервер больше чем 50-70 кб. на сервер загружается непоный файл?
Название: Upload файла
Отправлено: Макс от 11 Сентября 2003, 01:32:29
потому что неправильно написан скрипт.
Название: Upload файла
Отправлено: Grape от 11 Сентября 2003, 01:53:29
 
$htm=\'../temp/\'.$newname.\'.txt\';
if(is_uploaded_file($_FILES["html"]["tmp_name"]))
{
   if (move_uploaded_file($_FILES["html"]["tmp_name"],"$htm"))
   {
      $fp=fopen($htm, "r");
      $text=fread($fp,filesize($htm));
      $text=addslashes(trim($text));
      fclose($fp);
      if (!@unlink($htm)) {echo(\'Файл "\'.$htm.\'" не может быть удален из временной директории.".
\'."\\n");}
   }
   else {echo(\'Файл не может быть скопирован в директорию.".
\'."\\n"); $test=0;}
}


вот код, моежт поможете?
Спасибо.
Название: Upload файла
Отправлено: rx-host.net от 11 Сентября 2003, 02:04:36
Может там по умолчанию еще стоит загрузка не больше 70 КБ...

Я код не смотрел.
Название: Upload файла
Отправлено: Grape от 11 Сентября 2003, 02:09:23
в том то и дело, что 56 кб. пролазит, а 142 кб. нет. а ограничение - 2 мегабайта.
Название: Upload файла
Отправлено: Макс от 11 Сентября 2003, 02:11:44
Grape
1. оформи свой код тегами [ php ] [/ php ]
2. покажи форму.
3. покажи что выводит print_r($_FILES); для больших файлов.
Название: Upload файла
Отправлено: Grape от 11 Сентября 2003, 02:56:16

 

echo(\'\'."\\n");
echo(\'\'."\\n");
if ($h>2)
{
   echo(\'\'."\\n");
   if (\'\'!=$content[\'dop\'.$h])
   {
       echo(\'\'."\\n");
   }
   if (3==$h) {echo(\'\');
}
echo(\'\'."\\n");
echo(\'\'."\\n");
?>
 
   
 
Загрузить из HTML файла
Загрузка \');
   if (3==$h) {echo(\'фотографии\');} else {echo(\'архива\');}
   echo(\'
\');
       if (3==$h) {echo(\'
\');}
       else {echo(\'\'."\\n");}
       echo(\'Удалить:value="true">
\');}
   else {echo(\'
align="center">value="\'.$content[\'size\'.$h].\'">\');}
   echo(\'

     

       
     

   




Название: Upload файла
Отправлено: Grape от 11 Сентября 2003, 02:57:07
print_r(\'name=\'.$_FILES[\'html\'][\'name\'])
print_r(\'type=\'.$_FILES[\'html\'][\'type\'])
print_r(\'size=\'.$_FILES[\'html\'][\'size\'])
print_r(\'tmp_name=\'.$_FILES[\'html\'][\'tmp_name\'])

name=sp.rar
type=application/octet-stream
size=184021
tmp_name=/tmp/php1Jd34W



Спасибо.
Название: Upload файла
Отправлено: Макс от 11 Сентября 2003, 03:31:53
я написал чтобы ты показал именно print_r($_FILES);
В массиве $_FILES в одном из полей (error кажется) php пишет почему не был закачн файл.
Судя по твоему результату у тебя файл закачивается
Название: Upload файла
Отправлено: Меняздесьдавнонет от 11 Сентября 2003, 11:28:55
а где тут MAX_FILE_SIZE ?
Название: Upload файла
Отправлено: Zpt от 13 Сентября 2003, 23:01:47
А MAX_FILE_SIZE используется только для указания на максимальный размер файла,чтобы даже и не пытаться загружать его на сервер, если он больше или я ошибаюсь?

Вобщем проблема была в базе данных :)

Тут другой вопрос возник: На сервере РНР в безопасном режиме стоит и включен basedir, как можно посмотреть тип загружаемого файла? Дело еще и в том, что я пытаюсь сделать проверку в цикле, т.е. проверка имеет вид что-то типа:

for($i=0; $i<=10; $i++)
{
   $a="variable$i";
   $type=$$a_type
}

или

for($i=0; $i<=10; $i++)
{
   $a="variable$i";
   $type=$_FILES[$$a]["type"];
}

Ни один, ни другой случай не пашет, в чем может быть причина (без переменной переменной работает)
Название: Upload файла
Отправлено: Меняздесьдавнонет от 14 Сентября 2003, 10:58:39
ты ошибаешься.

а для перебора массива files недо пользоваться не этим уродством, а foreach
Название: Upload файла
Отправлено: Zpt от 15 Сентября 2003, 12:21:29
Спасибо огромное, разобрался, сделал через цикл с параметром, а что ты имел ввиду насчет for each, сожешь привести маленький примерчик?
Название: Upload файла
Отправлено: Меняздесьдавнонет от 15 Сентября 2003, 12:22:27
все примерчики - в мануале