За последние 24 часа нас посетили 17738 программистов и 1685 роботов. Сейчас ищут 1048 программистов ...

if upload успешно или где ловить true

Тема в разделе "PHP для новичков", создана пользователем HerVverh, 26 янв 2018.

  1. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    При загрузке файла в выбранную папку php никак не хочет писать "успешно", где надо вставить echo? и как? upload выдаёт true при успехе, может надо ловить при возврате в html этот true? как?

    if (move_uploaded_file($tmpFilePath, $newFilePath)) {

    //Handle other code here

    }
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Слегка модифицированный пример с документации.Все выводится хорошо.Что то видимо у тебя в коде
    PHP:
    1. <?php
    2. if($_SERVER['REQUEST_METHOD'] == 'POST') {
    3. $uploaddir = 'C:\ospanel\domains\localhost\download\\';
    4. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    5. echo '<pre>';
    6. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    7.     echo "Файл корректен и был успешно загружен.\n";
    8. } else {
    9.     echo "Возможная атака с помощью файловой загрузки!\n";
    10. }
    11.  
    12. echo 'Некоторая отладочная информация:';
    13. print_r($_FILES);
    14.  
    15. print "</pre>";
    16. }
    17. ?>
    18. <!-- Тип кодирования данных, enctype, ДОЛЖЕН БЫТЬ указан ИМЕННО так -->
    19. <form enctype="multipart/form-data" action="" method="POST">
    20.     <!-- Название элемента input определяет имя в массиве $_FILES -->
    21.     Отправить этот файл: <input name="userfile" type="file" />
    22.     <input type="submit" value="Send File" />
    23. </form>
     
  3. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    не понял... скопировал с письма только это и вставил в рабочий код
    1. echo "Файл корректен и был успешно загружен.\n";
    2. } else {
    3. echo "Возможная атака с помощью файловой загрузки!\n";
    4. }
    вообще всё перестало работать, вставил предыдущий рабочий код, тоже перестал работать, это что значит?
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Превиди весь код сюда и оформи правиьно нажми </> вставь код туда
     
  5. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    в папке загруженных файлов не было. до перезагрузки. появились все. что такое...
    --- Добавлено ---
    весь код вот, куда надо вставить echo? вставлял после последнего if, безуспешно

    <?php
    header('Content-Type: text/plain; charset=utf-8');

    $uploaddir = './1/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

    //$files = array_filter($_FILES['upload']['name']); something like that to be used before processing files.
    // Count # of uploaded files in array
    $total = count($_FILES['upload']['name']);

    // Loop through each file
    for($i=0; $i<$total; $i++) {
    //Get the temp file path
    $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

    //Make sure we have a filepath
    if ($tmpFilePath != ""){
    //Setup our new file path
    $newFilePath = "/1/" . $_FILES['upload']['name'][$i];

    //Upload the file into the temp dir
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {

    //Handle other code here

    }
    }
    }

    header ("Location: ".$_SERVER['HTTP_REFERER']);

    ?>
     
  6. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Так будет понятней. Щас посмотрю

    PHP:
    1. <?php
    2. header('Content-Type: text/plain; charset=utf-8');
    3.  
    4. $uploaddir = './1/';
    5. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    6.  
    7. //$files = array_filter($_FILES['upload']['name']); something like that to be used before processing files.
    8. // Count # of uploaded files in array
    9. $total = count($_FILES['upload']['name']);
    10.  
    11. // Loop through each file
    12. for($i=0; $i<$total; $i++) {
    13. //Get the temp file path
    14. $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
    15.  
    16. //Make sure we have a filepath
    17. if ($tmpFilePath != ""){
    18. //Setup our new file path
    19. $newFilePath = "/1/" . $_FILES['upload']['name'][$i];
    20.  
    21. //Upload the file into the temp dir
    22. if(move_uploaded_file($tmpFilePath, $newFilePath)) {
    23.  
    24. //Handle other code here
    25.  
    26. }
    27. }
    28. }
    29.  
    30. header ("Location: ".$_SERVER['HTTP_REFERER']);
    31.  
    32. ?>
    --- Добавлено ---
    после
    //Handle other code here
    вставь
    PHP:
    1. echo 'Загрузка успешна!';
     
  7. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    ваш код отдельным файлом сделал, вообще не работает
     
  8. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    У тебя в обработчике после обработки файлов сразу редиректит на реферера.
    Вставишь что то на вывод, получишь ошибку, что заголовки уже отправлены.
     
  9. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер

    делал и так и многокак по другому и эдак и почему-то ничего не пишет страница...как-то делал с отражением true в адресе...в адресе true появилось, может true ловить ?
     
  10. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Ты понимаешь что у тебя в коде написано?
    а ты понимаешь что тебе дали за кусок кода?
     
  11. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    вставлял и так и эдак, файлы вставляются, но нет сообщения об успехе.
     
  12. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    И кстати да у тебя
    PHP:
    1. header ("Location: ".$_SERVER['HTTP_REFERER'].'?complete=true');
    в конце файла. Не заметил.
    Лови переменную
    PHP:
    1. $_GET['complete']
     
    HerVverh нравится это.
  13. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    сам повторить пока не смогу, но понимаю. что не нравится? код рабочий.
     
  14. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Но тебе нужно еще дописать доп проверок и передавать разный comlpet в случае ошибки false иначе true
     
  15. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    true в адресе появляется, как его ловить в html?
    --- Добавлено ---

    где и как ловить переменную? в php или при возврате в адресе html?
    наверно не так....
    $_GET['complete'] echo 'Загрузка успешна!'; ?>
     
  16. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126

    PHP:
    1. $_GET['complete']
    на странице на которую переадрисовывает
     
  17. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    переадресация обратно в html, вставил
    <?php $_GET['complete'] echo 'Загрузка успешна!'; ?>
    не работает

    вот код с html с вставленным php, не работает

    <div style="position:absolute;top:27.5%;left:1%;z-index:100;">
    <form enctype="multipart/form-data" action="upload1.php" method="POST">
    <p>Загрузите ваш поэтажный план или экспликацию помещения или рисунок с размерами</p>
    <!-- Название элемента input определяет имя в массиве $_FILES -->
    <input name="upload[]" type="file" multiple accept="image/*" />
    <input type="submit" value="Отправить файл" />
    <?php $_GET['complete'] echo 'Загрузка успешна!'; ?>
    </form>
    </div>
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
  19. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    ваше Г в спортзале или в регби унылым будет. пока графику вставлю, потом до остального дойду. так как в моём примере поймать True?
     
  20. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    в вашем говне труе не обнаруженно
     
  21. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    труе есть в адресе html, как его поймать? явно летит выше.
    появляется здесь header ("Location: ".$_SERVER['HTTP_REFERER'].'?complete=true');
     
  22. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    1.php
    PHP:
    1. <?php
    2. header('location: 2.php?res=true');
    3. ?>
    2.php
    PHP:
    1. <?php
    2. var_dump($_GET['res']);
    3. ?>
     
    HerVverh нравится это.
  23. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    вот так в html сделать? не работает.
    <?php var_dump($_GET['res']); echo 'Загрузка успешна!'; ?>
     
  24. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    блин, в регби проще, ломиться до победы, а тут.... кавычки, запятые...букву не так и пипец. кто может сказать, всё ли правильно в этой орфографии?
    <?php var_dump($_GET['res']); echo 'Загрузка успешна!'; ?>
    --- Добавлено ---
    и надо МIME еще проверить обязательно?
    --- Добавлено ---
    если уж php форум обновляется с новыми сообщениями не актуально...написал тут два ответа, а мне после второго показывает уведомление об ответе на предпервый...то наверно и php не такой и гладкий и ровный...получается блин...а форум БМВ на php написан? там как-то чётко всё.
     
  25. HerVverh

    HerVverh Новичок

    С нами с:
    7 янв 2018
    Сообщения:
    59
    Симпатии:
    1
    Адрес:
    Питер
    встретили меня старожилы...ответили на пару вопросов не до конца, не поставил лайки, потому что не конкретно ответили. и всё...пусто, никто не отвечает более. старожилы!!! хотите лайк:) ответьте на простейший вопрос!!:)