[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: загрузка файлов на сервер
Нимфа
У меня возникла проблема с формой загрузки файлов.
Вот код формы

<form enctype="multipart/form-data" action="upload.php" metod="POST" >
<input type="hidden" name="MAX_FALE_SIZE" value="10000" />
<input type="file" name="userfile" />
<input type="submit" value="Загрузить" />
</form>

В файле upload.php ничего не могу сделать, так как массив $_FILE пуст !!!

echo $_FILE['userfile']['name'] ."<br/>".
$_FILE['userfile']['type'] ."<br/>".
$_FILE['userfile']['size'] ."<br/>".
$_FILE['userfile']['tmp_name'] ."<br/>".
$_FILE['userfile']['error'] ."<br/>";

ниодна из этих переменных не выводится на экран!
В чем может быть ошибка?



Спустя 11 минут, 10 секунд (22.03.2009 - 23:19) sergeiss написал(а):
Массив называется не $_FILE, а $_FILES! smile.gif

Спустя 24 минуты, 33 секунды (22.03.2009 - 23:43) Нимфа написал(а):
Нет, с таким массивом тоже не срабатывает! И правильно именно $_FILE - посмотрела в справочнике.

Спустя 2 минуты, 42 секунды (22.03.2009 - 23:46) sergeiss написал(а):
Цитата (Нимфа @ 22.03.2009 - 23:43)
Нет, с таким массивом тоже не срабатывает! И правильно именно $_FILE - посмотрела в справочнике.

Интересно... А почему тогда такие слова написаны в хэлпе? smile.gif В том самом, который у меня в подписи (далее цитата из него)?
Цитата
$_FILES
$HTTP_POST_FILES [deprecated]
$_FILES -- $HTTP_POST_FILES [deprecated] — HTTP File Upload variables

Описание
An associative array of items uploaded to the current script via the HTTP POST method.

$HTTP_POST_FILES contains the same initial information, but is not a superglobal. (Note that $HTTP_POST_FILES and $_FILES are different variables and that PHP handles them as such)

Список изменений

Версия Описание
4.1.0 Introduced $_FILES that deprecated $HTTP_POST_FILES. 

Спустя 10 минут, 15 секунд (22.03.2009 - 23:56) Нимфа написал(а):
сделала print_r массива $_FILES - он оказался пустой. Может что -то с формой не так??

Спустя 6 минут, 22 секунды (23.03.2009 - 00:03) twin написал(а):
method="POST"

Спустя 3 минуты, 6 секунд (23.03.2009 - 00:06) Нимфа написал(а):
Аааа! У меня нет слов!! Вот это ступила, так ступила!! Пол дня просидела!! И что бы я без вас делала!! Спасибо огромное! biggrin.gif

Спустя 14 минут, 12 секунд (23.03.2009 - 00:20) sergeiss написал(а):
twin - глазастый smile.gif

Спустя 8 минут, 21 секунда (23.03.2009 - 00:28) Нимфа написал(а):
да и ты FILES углядел, спасибо! Делаю дальше эту отправку, еще правильно не получается, когда совсем безнадежность почувствую, опять о помоши покричу smile.gif , мне ваши глазки еще пригодятся))

Спустя 18 часов, 11 минут, 22 секунды (23.03.2009 - 18:40) Нимфа написал(а):
Возникла следующая проблемка: не переносится загружаемый файл из временного каталога в нужную дерикторию.
Делала
move_uploaded_file($filename, "/www/map/plases/".$filename) и
copy($filename, "/www/map/plases/".$filename) .
путь к временному каталогу /home/u544711/site.ru/tmp/phpNpB25c
мне надо записать файл в /home/u544711/site.ru/www/map/plases/file_name.gif
Как правильно прописать эту директорию и передвижение?

Спустя 3 дня, 21 час, 37 минут, 40 секунд (27.03.2009 - 16:17) Нимфа написал(а):
PHP
$upluaddir="/map/plases/plase"$_SESSION['check_plase_id'].".".$valid_types ;
                 echo 
$upluaddir;
                 if (
move_uploaded_file($filename,$upluaddir))
                {
                    echo 
'Файл успешно загружен';
                }
                else
                {
                    echo 
'Error: загрузка не удалась';
                }


как я директорию не крутила - ничего не получается!!! Подскажите пожалуйсто, в чем ошибка??

Спустя 28 минут, 4 секунды (27.03.2009 - 16:45) Viking написал(а):
$filename правильный?
Цитата
путь к временному каталогу /home/u544711/site.ru/tmp/phpNpB25c

это не путь, а сам файл и есть
move_uploaded_file($_FILES["userfile"]["tmp_name"],$path."/".$_FILES["userfile"]["name"]) что-то типа такого должно быть

Спустя 20 минут, 28 секунд (27.03.2009 - 17:06) Нимфа написал(а):
PHP
$filename $_FILES['userfile']['tmp_name'];
$path="www/map/plases/"// правильно ли я путь указываю?? если
                                        // временная папка tmp и папка www 
                                         //находяться в  одной директории?
 
if (move_uploaded_file($filename,$path.$_FILES["userfile"]["name"]))
                {
                    echo 
'Файл успешно загружен';
                }
                else
                {
                    echo 
'Error: загрузка не удалась';
                }


И результат - загрузка не удалась...

Спустя 30 минут, 24 секунды (27.03.2009 - 17:36) Viking написал(а):
а сам скрипт у тебя где находится, в /home/u544711/site.ru/ ?
вообще надо включать максимальный эррор репортинг и смотреть какое предупреждение выдает, а не гадать

Спустя 22 минуты, 11 секунд (27.03.2009 - 17:58) Нимфа написал(а):
/home/u544711/site.ru/
|--tmp временный каталог
|--www папка со скриптами
|--------------map/plases сюда надо переместить загружаемый файл
|---------------admin/map здесь находится мой скрипт, выполняющий эту функцию


и вот полный мой скрипт
PHP
$max_image_width    = 100;
$max_image_height    = 100;
$max_image_size        = (10 * 1024);
$valid_types         = "gif";

    if (is_uploaded_file($_FILES['userfile']['tmp_name']))
    {
        //echo "file ".$_FILES['userfile']['tmp_name']."<br/>";
        $filename = $_FILES['userfile']['tmp_name'];
        $text = substr($_FILES['userfile']['name'], (+ strrpos($_FILES['userfile']['name'], ".")));
        if (filesize($filename) > $max_image_size)
        {
            echo 'Error: Размер файла превышает 10K.';
        }
        elseif ($text!=$valid_types)
        {
            echo 'Error: Неверный формат файла.';
        }
        else
        
{
             $size = GetImageSize($filename);
             if (($size) && ($size[0] == $max_image_width) && ($size[1] == $max_image_height))
             {
                $path="www/map/plases/"; // правильно ли я путь указываю?? если
                                        // временная папка tmp и папка www
                                         //находяться в  одной директории?
                 if (move_uploaded_file($filename,$path.$_FILES["userfile"]["name"]))
                {
                    echo 'Файл успешно загружен';
                }
                else
                
{
                    echo 'Error: загрузка не удалась';
                }
            }
            else
            
{
                echo 'Error: Загружать разрешено квадраты размером только 100х100.';
            }
        }
    }
    else
    
{
        echo "Error: empty file.";
    }



ПОМОГИТЕ!!!

Спустя 16 минут, 39 секунд (27.03.2009 - 18:15) Viking написал(а):
если у тебя сам скрипт в /home/u544711/site.ru/admin/map то $path="plases/"

Спустя 49 минут, 8 секунд (27.03.2009 - 19:04) Нимфа написал(а):
home/u544711/site.ru/www/admin/map/upload.php - мой скрипт
home/u544711/site.ru/www/map/plases/ - сюда закачать картинку
home/u544711/site.ru/tmp/ - временный каталог

Спустя 21 минута, 48 секунд (27.03.2009 - 19:26) Viking написал(а):
ну тогда $path="../../map/plases/"
вообще можно полный путь указать и не ломать голову
а еще вообщее надо знать, что скрипт отмеривает пути от своего собственного каталога:
"path" или грамотнее "./path" - это path в его же каталоге
"../path" - в родительском

Спустя 2 минуты, 15 секунд (27.03.2009 - 19:28) twin написал(а):
А вызывается скрипт откуда? Путь надо считать от файла, к которому этот скрипт подключен, если он подключается, а не от самого скрипта. Вообще скрипт рабочий, я проверил. Тут как раз для мамбы biggrin.gif аплоадер только что написал, он сам делает фотки квадратными и маленькими. Если надо - могу написать.

Спустя 30 минут, 58 секунд (27.03.2009 - 19:59) Нимфа написал(а):
и ../../map/plases/, и полный home/u544711/site.ru/www/map/plases/ указывала!!! ничего!!! Может что-то с именем файла не так? plase_redactor.gif, хотя другие тоже не грузятся. А что мне можно сделать, что бы просмотреть, в чем ошибка?? Было сказано про Error Reporting..

Спустя 6 минут, 48 секунд (27.03.2009 - 20:06) twin написал(а):
Да нету там ошибок. Я вот так его запустил
PHP
<?php
$max_image_width    
= 100;
$max_image_height    = 100;
$max_image_size        = (10 * 1024);
$valid_types         = "gif";

    if (is_uploaded_file($_FILES['userfile']['tmp_name']))
    {
       echo "file ".$_FILES['userfile']['name']."<br/>";
        $filename = $_FILES['userfile']['tmp_name'];
        $text = substr($_FILES['userfile']['name'], (+ strrpos($_FILES['userfile']['name'], ".")));
        if (filesize($filename) > $max_image_size)
        {
            echo 'Error: Размер файла превышает 10K.';
        }
        elseif ($text!=$valid_types)
        {
            echo 'Error: Неверный формат файла.';
        }
        else
        
{
             $size = GetImageSize($filename);
             if (($size) && ($size[0] == $max_image_width) && ($size[1] == $max_image_height))
             {
                $path="plases/"; // правильно ли я путь указываю?? если
                                        // временная папка tmp и папка www
                                         //находяться в  одной директории?
                 if (move_uploaded_file($filename,$path.$_FILES["userfile"]["name"]))
                {
                    echo 'Файл успешно загружен';
                }
                else
                
{
                    echo 'Error: загрузка не удалась';
                }
            }
            else
            
{
                echo 'Error: Загружать разрешено квадраты размером только 100х100.';
            }
        }
    }
    else
    
{
        echo "Error: empty file.";
    }
?>
<form action="" method="post" enctype="multipart/form-data">
    <input name="userfile" type="file" />
    <input name="" type="submit" />
    </form>



- все норм. Может только права на каталог проверить, должны быть 777.

Спустя 12 минут, 15 секунд (27.03.2009 - 20:18) Viking написал(а):
Цитата
Было сказано про Error Reporting..

в php.ini
error_reporting = E_ALL |E_STRICT
или в .htaccess как-то там php_val и т.д. точно не помню

Цитата
и полный home/u544711/site.ru/www/map/plases/ указывала!!!

полный путь - /home/u544711/site.ru/www/map/plases/
без слеша он от текущего каталога отмеряет

Спустя 8 минут, 23 секунды (27.03.2009 - 20:27) twin написал(а):
В .htaccess вот так:
Код
php_value error_reporting 2047

а можно первой строчкой скрипта:
PHP
Error_Reporting(E_ALL & ~E_NOTICE);

Спустя 1 час, 43 минуты, 9 секунд (27.03.2009 - 22:10) Nikolas Grad написал(а):
У меня вообще непонятно что. Из тестовой формы данные не передаются в тестовый файл:

форма index.php
<html>
<head>
<title>test</title>
</head>
<body>
<form action="uname.php" method="post">
<input type="text" name="user" size="10" maxlength="10">
<input type="submit" value="ok">
</form>
</body>
</html>

вывод uname.php
<html>
<head>
<title>test</title>
</head>
<body>
<?print "$user";?>
</body>
</html>

Установлен "Денвер" на локальном.
Подскажите, что за беда.

Спустя 7 минут, 30 секунд (27.03.2009 - 22:17) Viking написал(а):
<html>
<head>
<title>test</title>
</head>
<body>
<?php print $_POST["user"];?>
</body>
</html>

Спустя 2 часа, 31 минута, 21 секунда (28.03.2009 - 00:49) Nikolas Grad написал(а):
Благодарю!
Но так тоже не работает, пришлось включить register_globals.
Думаю на локалке не страшно.

Спустя 1 день, 14 часов, 15 минут, 47 секунд (29.03.2009 - 14:04) Нимфа написал(а):
проверила права доступа к каталогам и файлам - оказалость везде стоит 0755 / 0644 (Кстати http://omsk777.ru/all.php?act=dostup тут очень хорошая статья про права доступа)
Папки 755 владелец может всё, группа и все остальные могут читать папки и заходить в них, записывать файлы, изменять названия файлов, стирать файлы в папках им запрещено. (rwxr-xr-x)
Файлы 644 владелец может читать и изменять файлы, исполнять ему их запрещено, все остальные могут только файлы читать, изменять и исполнять им запрещено. (rw-r--r--)
так вот там(в статье) рекомендуют так: "на те папки куда будут записываться - стираться файла, ставьте права 733, не надо ставить 777 - нет смысла, так как, если стоят права 733 - значит пользователь не сможет отдельно от ваших скриптов читать содержимое каталогов."
Ошибка, из-за которой мой скрипт загрузки файлов не работает - очевидна smile.gif
А теперь пдскажите, как я могу поменять эти права через тотал командер!! (В статье ток far менеджер рассматривался для такого дела)

twin! Спасибо за толчки в нужном направлении!

Спустя 5 часов, 17 минут, 54 секунды (29.03.2009 - 19:22) Нимфа написал(а):
ЕСТЬ! ЕСТЬ! ЕСТЬ! Наконецто он грузится! установила доступ к папке 733 и заработало!!!!!! biggrin.gif biggrin.gif biggrin.gif biggrin.gif

Спустя 7 часов, 42 минуты, 9 секунд (30.03.2009 - 03:05) S{oRpiO написал(а):
Цитата (Nikolas Grad @ 27.03.2009 - 22:10)
У меня вообще непонятно что. Из тестовой формы данные не передаются в тестовый файл:

форма index.php
<html>
<head>
<title>test</title>
</head>
<body>
<form action="uname.php" method="post">
<input type="text" name="user" size="10" maxlength="10">
<input type="submit" value="ok">
</form>
</body>
</html>

вывод uname.php
<html>
<head>
<title>test</title>
</head>
<body>
<?print "$user";?>
</body>
</html>

Установлен "Денвер" на локальном.
Подскажите, что за беда.

если не пашет как тебе написали выше попробуй

PHP
$text= $_POST['user'];
echo "$text";


иноогда глюкт получаются если напрямую в echo указывать вывод методом POST

Спустя 3 минуты (30.03.2009 - 03:08) S{oRpiO написал(а):
Цитата (Viking @ 27.03.2009 - 22:17)
<html>
<head>
<title>test</title>
</head>
<body>
<?php print $_POST["user"];?>
</body>
</html>

кстати в переменно метода пост пишутся не ковычке а апострофы
тоесть не $_POST["user"]

а $_POST['user']

Спустя 3 часа, 20 минут, 34 секунды (30.03.2009 - 06:28) Viking написал(а):
Цитата (S{oRpiO @ 30.03.2009 - 03:08)
Цитата (Viking @ 27.03.2009 - 22:17)
<html>
<head>
<title>test</title>
</head>
<body>
<?php print $_POST["user"];?>
</body>
</html>

кстати в переменно метода пост пишутся не ковычке а апострофы
тоесть не $_POST["user"]

а $_POST['user']

Да? huh.gif а мужики то и не знают! ohmy.gif напиши об этом вот сюда обязательно...

Спустя 19 минут, 11 секунд (30.03.2009 - 06:47) kirik написал(а):
Цитата (S{oRpiO @ 29.03.2009 - 19:05)
$text= $_POST['user'];
echo "$text";

иноогда глюкт получаются если напрямую в echo указывать вывод методом POST

Враки все это. А вот переменную в кавычки заключать - самое страшное зло из всех зол.

Спустя 1 час, 32 минуты, 5 секунд (30.03.2009 - 08:19) sergeiss написал(а):
Цитата (kirik @ 30.03.2009 - 06:47)
А вот переменную в кавычки заключать - самое страшное зло из всех зол.

Ну уж не так всё плохо, не пугай людей smile.gif Подумаешь, потеряет скрипт впустую сколько-то (немного) долей секунды. И вся проблема.

Спустя 31 минута, 39 секунд (30.03.2009 - 08:51) kirik написал(а):
Цитата (sergeiss @ 30.03.2009 - 00:19)
Подумаешь, потеряет скрипт впустую сколько-то (немного) долей секунды.

Тут дело в принципе smile.gif

Спустя 1 день, 14 часов, 21 минута, 5 секунд (1.04.2009 - 23:12) Nikolas Grad написал(а):
Цитата
кстати в переменно метода пост пишутся не ковычке а апострофы
тоесть не $_POST["user"]

а $_POST['user']

Вот так точнее будет!
Всё работает.
Спасибо.

Но есть ещё проблема.
Подскажите, как принудительно перезагрузить страницу.
Пишу:
PHP
system($test_link);

(в $test_link ссылка)
Страница открывается в новой вкладке, а надо, чтобы в том же окне.

Спустя 22 минуты, 18 секунд (1.04.2009 - 23:34) kirik написал(а):
а header('Location: ...') уже не помогает?

Спустя 10 минут, 41 секунда (1.04.2009 - 23:45) Nikolas Grad написал(а):
Не знаю. Я самоучка - только осваиваю.

Спустя 1 час, 11 минут, 16 секунд (2.04.2009 - 00:56) kirik написал(а):
Цитата (Nikolas Grad @ 1.04.2009 - 15:45)
Я самоучка - только осваиваю.

Это хорошо. Только про мануал на http://php.net не забывай (или ссылка у sergeiss'а в подписи). Посмотри что делает функция system() и правильно-ли ее использовать тут. И потом глянь header() (3-й пример кода сверху)

Спустя 1 час, 8 минут, 25 секунд (2.04.2009 - 02:05) Nikolas Grad написал(а):
А есть на РНР альтернатива:
PHP
echo '<script>window.location="'.$test_link.'";</script>';

Спустя 2 минуты, 10 секунд (2.04.2009 - 02:07) Nikolas Grad написал(а):
...у меня перенаправление в блоке условий.
Не хочется весь скрипт переделывать.

Спустя 30 минут, 35 секунд (2.04.2009 - 02:37) kirik написал(а):
Как знаешь smile.gif
Цитата (Nikolas Grad @ 1.04.2009 - 18:05)
А есть на РНР альтернатива:

JS wink.gif

Спустя 4 часа, 27 минут, 37 секунд (2.04.2009 - 07:05) Sylex написал(а):
Цитата (sergeiss @ 30.03.2009 - 11:19)
Цитата (kirik @ 30.03.2009 - 06:47)
А вот переменную в кавычки заключать - самое страшное зло из всех зол.

Ну уж не так всё плохо, не пугай людей smile.gif Подумаешь, потеряет скрипт впустую сколько-то (немного) долей секунды. И вся проблема.

ага, потом чел привыкает так кодить и постоянно пишет, и скрипты большие и сами знаешь какие....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.