Почему таблица не печатается правильно с помощью echo? - PullRequest
0 голосов
/ 20 декабря 2018

Я следую этому уроку, чтобы напечатать значения файла с расширением, используя echo в php.Учебник: http://www.learncomputer.com/tutorial-uploading-files-in-php/

<?php //Whole php code
echo "<table border=\"1\">";
echo "<tr><td>Client FileName: </td>
<td>" . $_FILES["fileName"]["name"] . "</td></tr>";
echo "<tr><td>File Type: </td>
<td>" . $_FILES["fileName"]["type"] . "</td></tr>";
echo "<tr><td>File Size: </td>
<td>" . ($_FILES["fileName"]["size"] / 1024) . " Kb</td></tr>";
echo "<tr><td>Name of Temporary File: </td>
<td>" . $_FILES["fileName"]["tmp_name"] . "</td></tr>";
echo "</table>";
?>

Тем не менее, когда я загружаю и отправляю изображение, на экране выводится следующий результат

"; echo "Client Filename: " . $_FILES["fileName"]["name"] . ""; echo "File Type: " . $_FILES["fileName"]["type"] . ""; echo "File Size: " . ($_FILES["fileName"]["size"] / 1024) . " Kb"; echo "Name of Temporary File: " . $_FILES["fileName"]["tmp_name"] . ""; echo ""; ?> 

, который не является ожидаемой таблицей с именем,тип, размер и имя временного файла, как и ожидалось.Я даже пытался заменить кавычки «для», но безуспешно. Я не понимаю, почему в начале была напечатана точка с запятой, а в инструкции кода «. $ Var.» Указано действительное значение переменных

РЕДАКТИРОВАТЬ: Моя версия PHP 7.2.1 и вот HTML-код, с помощью которого я отправляю и вызываю мой код PHP:

   <!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="jquery.js"></script>
<!-- GOOGLE -->
<meta name="google-signin-scope" content="profile email">
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<!--<script src="https://apis.google.com/js/platform.js" async defer> 
</script> -->
<!-- GOOGLE -->
<!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
-->
<link rel="stylesheet" type="text/css" href="Tops.css">
<link rel="stylesheet" type="text/css" href="Ejemplo_botones.css">
<link rel="stylesheet" type="text/css" href="Config.css">
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" integrity="sha384-gfdkjb5BdAXd+lj+gudLWI+BXq4IuLW5IT+brZEZsLFm++aCMlF1V92rMkPaX4PP" crossorigin="anonymous">
</head>
<body>
<style>
</style>
<link rel="stylesheet" href="">
<nav>
    <a href="Topsitio.html"><img src="logo.png" class=top alt=""></a>
    <ul>
        <li><a href="/">Home</a></li>
        <li><a href="">About</a></li>
        <li><a href="">Contacto</a></li>
        <li><a href="I.php">Iniciar Sesión</a></li>
    </ul>
</nav>
<figure>
    <img src="shop.png" class=shop alt="">

</figure>
<div class="container">
    <div class="Pasos">
       <ul>
           <a href=""><li class="paso1 paso">Paso 1 </li></a>
           <a href=""><li class="paso">  Paso 2 </li></a>
           <a href=""><li class="paso"> Paso 3 </li></a>
           <a href=""><li class="paso"> Paso 4 </li></a>
           <a href=""><li class="paso5 paso"> Paso 5</li></a>
       </ul>
    </div>
</div>
<div class="registro"> 
    <p id="regi" class="titulo-registro">Cargar foto de Perfil</p>
    <div class="ringborder">
        <div class="ring">
            <i id="profile" class="fas fa-user-tie"></i>
        </div>
    </div>
    <br><br><form action="upload_table.php " method="post" enctype="multipart/form-data">
    <div class="contenedor">
    <p>
        Elige una foto:</p>
                <input class="plus" type="file" name="fileName" id="file-5" class="inputfile inputfile-4" data-multiple-caption="{count} files selected" multiple="" hidden>
                <label for="file-5"><figure  class="box"><svg id="upload" xmlns="http://www.w3.org/2000/svg" width="180" height="170" version="1.1">
                   <path id="upload" fill="white" heigthstroke="#f00" transform="scale(3.0)" d="M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"></path>
                    </svg></figure> 
                </label>

    </div>

    <br><input class="subir" type="submit" value="+ Subir foto">

    </form>
    <br><br>
    <div class="next">Siguiente</div>

</div>

<div class="first blau">
    <h1><span class="text">Articulos de gran calidad</span><span class="text2"> &nbsp  - &nbsp  Relojes y Pulseras</span></h1>
</div>
<script type="text/javascript" src="jquery.js"></script>
<script>
</script>
</body>

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы должны отладить ваш PHP-код, потому что он кажется правильным.

Лучший способ начать отладку - попытаться использовать поддельные статические значения в $ _FILES, чтобы увидеть, что происходит:

<?php

    $_FILES["fileName"] = [];
    $_FILES["fileName"]["name"] = 'test.jpg';
    $_FILES["fileName"]["type"] = 'image/jpg';
    $_FILES["fileName"]["size"] = 134767;
    $_FILES["fileName"]["tmp_name"] = '/tmp/temp_filename.jpg';


    echo "<table border=\"1\">";
    echo "<tr><td>Client Filename: </td>
    <td>" . $_FILES["fileName"]["name"] . "</td></tr>";
    echo "<tr><td>File Type: </td>
    <td>" . $_FILES["fileName"]["type"] . "</td></tr>";
    echo "<tr><td>File Size: </td>
    <td>" . ($_FILES["fileName"]["size"] / 1024) . " Kb</td></tr>";
    echo "<tr><td>Name of Temporary File: </td>
    <td>" . $_FILES["fileName"]["tmp_name"] . "</td></tr>";
    echo "</table>";

?>

Если это не работает, скопируйте один из ваших php-файлов, который работает, вставьте в него тот же код и замените в нем upload_table.php.Потому что, если в начале upload_table.php есть спецификация ( Порядок следования байтов может вызвать проблемы с отображением в PHP ), он напечатает несколько пустых символов в верхней части и, возможно, предотвратит выполнение кода php.Или вы можете сохранить файл utf8 без спецификации.Но я сомневаюсь, что это связано с спецификацией, но вы никогда не знаете.

0 голосов
/ 20 декабря 2018

Нет смысла пытаться поместить все в echo.Пусть HTML будет простым HTML и добавьте данные PHP, где это необходимо.

// assuming you were already in PHP
?>
<table border="1">
<tr><td>Client Filename: </td>
<td><?php echo $_FILES['fileName']['name']; ?></td></tr>
<tr><td>File Type: </td>
<td><?php echo $_FILES['fileName']['type']; ?></td></tr>
<tr><td>File Size: </td>
<td><?php echo ($_FILES['fileName']['size'] / 1024); ?> Kb</td></tr>
<tr><td>Name of Temporary File: </td>
<td><?php echo $_FILES['fileName']['tmp_name']; ?></td></tr>
</table>
<?php // back into PHP if you need to for something else
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...