X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Загрузка файла на сервер
sc2r2bey
sc2r2bey
Topic Starter сообщение 11.12.2010, 7:25; Ответить: sc2r2bey
Сообщение #1


в php.ini

; Maximum allowed size for uploaded files.
upload_max_filesize = 28M


загружаю файл больше 8М и меньше 28М
он не выдает ошибку на этапе проверки:
[php] if(($_FILES['file']['size']<8192000))[/php]
и как ни странно выполняется
[php] echo 'Отладочная информация:';
print_r($_FILES);
print "</pre>";[/php]
выдавая Array хотя по логике он вообще до этого кода не должен дойти
а он просто подряд исполняется

фрагмент upload.php

[php]if(($_FILES['file']['error']==0))
{
// устанавливаем максимально допустимый размер загружаемого файла
// (можно предусмотреть задание в конфигурацинном файле, т.е. в ручную).
if(($_FILES['file']['size']<8192000))
{
// устанавливаем папку загрузки
$uploaddir = '../../doc/';
// устанавливаем имя файла
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
echo '<pre>';

if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
echo "Файл успшно загружен.";
}
else
{
echo "Ошибка загрузки загрузки.";
}

echo 'Отладочная информация:';
print_r($_FILES);
print "</pre>";
}
else
{
echo "Размер принятого файла превысил максимально допустимый размер администратором сайта.";
}[/php]


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 11.12.2010, 18:08; Ответить: gaaarfild
Сообщение #2


Кроме этого параметра есть еще параметр не помню точно, как-то так

max_post_size = 2mb.

Вот его тоже поправь.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
panika
panika
сообщение 11.12.2010, 18:15; Ответить: panika
Сообщение #3


Пользуйтесь табуляцией TAB в редакторе, чтобы понимать в какой части кода что находиться.
[php]if(( $_FILES['file']['error'] == 0 )){
if(( $_FILES['file']['size']<8192000 )){

$uploaddir = '../../doc/';
$uploadfile = $uploaddir . basename( $_FILES['file']['name'] );

echo '<pre>';

if( move_uploaded_file( $_FILES['file']['tmp_name'], $uploadfile ) ){
echo "Файл успшно загружен.";
}else{
echo "Ошибка загрузки загрузки.";
}

echo 'Отладочная информация:';
print_r($_FILES);
print "</pre>";

}else{
echo "Размер принятого файла превысил максимально допустимый размер администратором сайта.";
}
}[/php]
Если бы Отладочная информация выдавалась в после оператора else тогда бы только при превышении размера это информация выводилась в браузер.
А то что вы написали Файл успешно загружен еще не означает что код не будет продолжать выполняться.

Размер принятого файла превысил максимально допустимый размер администратором сайта

Это из раздела Юмор, какой плохой администратор превысил допустимый размер. :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 11.12.2010, 23:50; Ответить: ZiTosS
Сообщение #4


marker, вы невнимательно прочитали, спрашивают почему файл размером больше 8мб проходит условие ограничения по размеру.
surfer, подебаж:
выведи на экран для себя значение $_FILES['file']['size'], соответствует ли оно действительности. Всё же это просто проверяется. Раз условие не выполняется, значит $_FILES['file']['size'] имеет невалидное значение.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 12.12.2010, 0:28; Ответить: sc2r2bey
Сообщение #5


дык думаю что апач падает щас систему переустановил попробую чо буит :)


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
panika
panika
сообщение 12.12.2010, 1:14; Ответить: panika
Сообщение #6


операционную систему? :rolleyes:
извиняюсь за оффтоп

з.ы.: если бы мне при столкновении с проблемой постоянно переустанавливать ос все бы закончилось суицидом.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 12.12.2010, 6:05; Ответить: sc2r2bey
Сообщение #7


(ZiTosS @ 11.12.2010, 22:50) *
surfer, подебаж:
выведи на экран для себя значение $_FILES['file']['size'], соответствует ли оно действительности. Всё же это просто проверяется. Раз условие не выполняется, значит $_FILES['file']['size'] имеет невалидное значение.

я же в первом посте писал, что выдает Array() и все, а почему не могу понять


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
panika
panika
сообщение 12.12.2010, 11:40; Ответить: panika
Сообщение #8


print_r( $_FILES );
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.12.2010, 14:16; Ответить: ZiTosS
Сообщение #9


surfer, правильно говорят, только лучше ещё добавить в pre, сразу увидим разницу:

1) Загрузка одного файла - в одиночной форме записи имени:
форма
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file'>
<input type='submit' value='Загрузить'>
</form>

результат $_FILES
Array
(
    [file] => Array
        (
            [name] => index.php
            [type] => application/octet-stream
            [tmp_name] => C:\Windows\Temp\phpD261.tmp
            [error] => 0
            [size] => 273
        )
)


2) Загрузка двух файлов - каждому полю указывается отдельное имя:
форма
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file1'>
<input type='file' name='file2'>
<input type='submit' value='Загрузить'>
</form>

результат $_FILES
Array
(
    [file1] => Array
        (
            [name] => index.php
            [type] => application/octet-stream
            [tmp_name] => C:\Windows\Temp\phpFE90.tmp
            [error] => 0
            [size] => 273
        )

    [file2] => Array
        (
            [name] => regular.php
            [type] => application/octet-stream
            [tmp_name] => C:\Windows\Temp\phpFEA1.tmp
            [error] => 0
            [size] => 152
        )
)


3) Загрузка одного файла - имя поля в форме массива файлов:
форма
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file[]'>
<input type='submit' value='Загрузить'>
</form>

результат $_FILES
Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => index.php
                )
            [type] => Array
                (
                    [0] => application/octet-stream
                )
            [tmp_name] => Array
                (
                    [0] => C:\Windows\Temp\phpB237.tmp
                )
            [error] => Array
                (
                    [0] => 0
                )
            [size] => Array
                (
                    [0] => 273
                )
        )
)


4) Загрузка двух файлов - имена полей в форме массива файлов:
форма
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='file[]'>
<input type='file' name='file[]'>
<input type='submit' value='Загрузить'>
</form>

результат $_FILES
Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => index.php
                    [1] => regular.php
                )
            [type] => Array
                (
                    [0] => application/octet-stream
                    [1] => application/octet-stream
                )
            [tmp_name] => Array
                (
                    [0] => C:\Windows\Temp\php1261.tmp
                    [1] => C:\Windows\Temp\php1262.tmp
                )
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                )
            [size] => Array
                (
                    [0] => 273
                    [1] => 152
                )
        )
)


Посмотри разницу когда мы используем разные имена файлов (file1, file2), а когда используем форму записи массива файлов (file[])
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 12.12.2010, 17:38; Ответить: sc2r2bey
Сообщение #10


вы меня за идиота считаете или читать не умеет, я же написал в таких ситуациях, т.е. при печати $_FILES
выдает:
Array
(
)

или в 4-й раз на китайском вам написать?

вот форма:
[php]<form action="upload.php" method="post" enctype="multipart/form-data">
<p>Файл для загрузки:
<input type="file" name="file" />
<input type="submit" name="add" value="загрузить" />
</p>
</form>[/php]

вот загрузчик
[php]<?php
// проверяем, что при загрузке был выбран файл
if(!$_FILES['file']['error'])
{
// устанавливаем максимально допустимый размер загружаемого файла
// (можно предусмотреть задание в конфигурацинном файле, т.е. в ручную).
if(($_FILES['file']['size']<8192000))
{
// устанавливаем папку загрузки
$uploaddir = '../../doc/';
// устанавливаем имя файла
$uploadfile = $uploaddir . basename($_FILES['file']['name']);
echo '<pre>';
// загружаем файл и перемещаем в заданную директорию
if(!is_resource(zip_open($_FILES['file']['tmp_name'])))
{
die("Загруженный файл не является ZIP-архивом");
}
else
{
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
echo "Файл успшно загружен.";
}
else
{
echo "Ошибка загрузки загрузки.";
}
}
echo 'Отладочная информация:';
print_r($_FILES);
print "</pre>";
}
else
{
echo "Размер принятого файла превысил максимально допустимый размер администратором сайта.";
}
}
else
{
echo "Ошибка загрузки загрузки: ".ErrorUpload($_FILES['file']['error']);
}

// функция определения ошибки загрузки файла
function ErrorUpload($fileerror)
{
// создаем массив ошибок
$err = array(
0=>"Ошибок не возникало, файл был успешно загружен на сервер.",
1=>"Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.",
2=>"Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.",
3=>"Загружаемый файл был получен только частично.",
4=>"Файл не был загружен.",
6=>"Отсутствует временная папка.",
7=>"Отказ в записи файла на диск.",
8=>"Расширение PHP остановило загрузку файла."
);
// возврашаем ошибку
return $err[$fileerror];
}
?>[/php]
небольшие файлы грузит хорошо, а вот условия что указаны вверху вот такая хрень


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) BuxarVideoUploader - Автоматическое скачивание и загрузка видео из любых/ на любые видео хостинги (YouTube, TikTok, Instagram, Facebook, Яндекс Дзен, Вконтакте, Одноклассники, Rutube, Dailymotion, d.tube, Telegram и т.д.
0 BuxarNET 1223 19.7.2023, 5:58
автор: BuxarNET
Открытая тема (нет новых ответов) Сервер для поднятия proxy ipv4
3 Panameira 2710 13.11.2018, 4:24
автор: zkalinin
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыЗагрузка фотографий на сайте.
8 Napoleon-007 1765 5.3.2018, 10:51
автор: Evgeniy3200
Открытая тема (нет новых ответов) RegVPS.ru - Надежный VPS/VDS сервер на SSD от 3.95 usd!
0 Regvpsru 1790 2.12.2017, 22:23
автор: -Regvpsru-
Открытая тема (нет новых ответов) Нужно написать Api сервер для мобильного приложения
0 Ksardas777 1683 7.9.2016, 11:34
автор: Ksardas777


 



RSS Текстовая версия Сейчас: 18.4.2024, 14:53
Дизайн