За последние 24 часа нас посетили 52769 программистов и 1768 роботов. Сейчас ищут 1050 программистов ...

Загрузка файлов на сервер

Тема в разделе "PHP для новичков", создана пользователем paqwerty, 7 фев 2008.

Статус темы:
Закрыта.
  1. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Вот после вот этого:
    вставь
    Код (Text):
    1. echo "\$ext=[".$ext."]<br>";
    и отпишись, чему равен $ext - только с учётом всяких точек, пробелов, и т.п. То есть - что пишет между скобками []
     
  2. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Такая же фигня. Но сдаётся мне, что там $ext не правильно вычисляется. А вникать тоже не охота.
     
  3. forint

    forint Активный пользователь

    С нами с:
    7 фев 2008
    Сообщения:
    26
    Симпатии:
    0
    HTML:
    1. $ext=[xls]
    2. Error: не прокатило.=( .
    как я и говорил он определяет само расширение ...

    директория есть /2/ в той же директории в которой лежит скрипт ..
    на всякий случай пробовал полный путь до папки писать...


    убрал @
    стало выводить
    HTML:
    1. $ext=[xls]
    2.  
    3. Warning: move_uploaded_file(/home/china/public_html/images/1/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/china/public_html/images/1/2-1uplouder.php on line 12
    4.  
    5. Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpbZS7Wd' to '/home/china/public_html/images/1/' in /home/china/public_html/images/1/2-1uplouder.php on line 12
    6. Error: не прокатило.=( .
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Адрес вроде-бы надо писать относительно скрипта.
    Если Вы хотите, чтобы файл копировался в ту же папку, что и скрипт, то пишите - /
    if (move_uploaded_file($filename, "/"))
     
  5. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Короче, как обычно - курим мануал. http://php.ru/move-uploaded-file . Правда там немного не очевидно написано.
    Из этого следует делать вывод, что в
    bool move_uploaded_file ( string filename, string destination )

    string destination - это имя файла, а не директория.
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    / - корень
    . - текущая папка
     
  7. paqwerty

    paqwerty Активный пользователь

    С нами с:
    2 мар 2007
    Сообщения:
    121
    Симпатии:
    0
    Я вот пробовал, пробовал, и все равно у меня ничего не получается.
    В итоге код у меня стал таким:

    Код формы:
    Код (Text):
    1.  
    2. <form action="scrord.php" method="post" enctype="multipart/form-data">
    3. Send these files:<br>
    4. <input name="userfile[]" type="file"><br>
    5. <input name="userfile[]" type="file"><br>
    6. <input type="submit" value="Отправить файлы ">
    7. </form>
    Код обработчика формы:
    Код (Text):
    1.  
    2. <?php
    3.  
    4. // Каталог, в который мы будем принимать файл:
    5. $uploaddir = '/local/home/name.ru/uploads/';
    6. $uploadfile = $uploaddir.basename($_FILES['userfile']['name']);
    7.  
    8. // Копируем файл из каталога для временного хранения файлов:
    9. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
    10. {
    11. echo "<h3>Файл успешно загружен на сервер</h3>";
    12. }
    13. else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; }
    14.  
    15. // Выводим информацию о загруженном файле:
    16. echo "<h3>Информация о загруженном на сервер файле: </h3>";
    17. echo "<p><b>Оригинальное имя загруженного файла: ".$_FILES['uploadfile']['name']."</b></p>";
    18. echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>";
    19. echo "<p><b>Размер загруженного файла в байтах: ".$_FILES['uploadfile']['size']."</b></p>";
    20. echo "<p><b>Временное имя файла: ".$_FILES['uploadfile']['tmp_name']."</b></p>";
    21.  
    22. ?>
    Теперь у меня вообще не загружаются файлы, все время ошибка.
    Помогите плиз....
     
  8. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Какая ошибка-то? Ну нету тут телепатов. А запускать этот скрипт для того, чтобы увидеть ошибку - нет никакого желания.
    И какие значения переменных? Короче, вывод скрипта в студию!
     
  9. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    paqwerty
    сделай print_r($_FILES); и сам всё увидишь, или не увидишь.
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Покопал у себя в скриптах, нашел -
    move_uploaded_file($_FILES['client_side_file']['tmp_name'], "fotos/".$thisnm)
    RomanBush
    Я чего-то и забыл про имя конечного файла :)
     
  11. paqwerty

    paqwerty Активный пользователь

    С нами с:
    2 мар 2007
    Сообщения:
    121
    Симпатии:
    0
    Короче, вот мой самый последний вариант

    Форма:
    Код (Text):
    1.  
    2. <form action="feedback.php" method="post" enctype="multipart/form-data">
    3. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    4. <input type="file" name="picture[]" /><br />
    5. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    6. <input type="file" name="picture[]" /><br />
    7. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    8. <input type="file" name="picture[]" /><br />
    9. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    10. <input type="file" name="picture[]" /><br />
    11. </form>
    Обработчик:
    Код (Text):
    1.  
    2. foreach($picture as $key=>$value){
    3. $m .= $value."<br>";
    4. }
    5. echo "$m";
    6.  
    7. $uploaddir = '/local/home/name.ru/uploads/';
    8. $uploadfile = $uploaddir . basename($_FILES['m']['name']);
    9.  
    10. print "<pre>";
    11. if (move_uploaded_file($_FILES['m']['tmp_name'], $uploadfile)) {
    12.     print "File is valid, and was successfully uploaded. ";
    13.     print "Here's some more debugging info:\n";
    14.     print_r($_FILES);
    15. } else {
    16.     print "Possible file upload attack!  Here's some debugging info:\n";
    17.     print "Possible file upload attack!  Дополнительная отладочная информация:\n";
    18.     print_r($_FILES);
    19. }
    20. print "</pre>";
    И вот результат, который мне дает все проделанного выше:
    Если посмотреть, то можно в результате скрипта увидеть что коды ошибок для загружаемых файлов "0", а это в свою очередь означает, что файлы загружены нормально. Но только вот файлы не загружаются то.[/quote]
     
  12. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
Статус темы:
Закрыта.