Загрузка файла PHP, файл не будет перемещен в локальный каталог - PullRequest
1 голос
/ 09 февраля 2010

У меня проблема при перемещении загруженного файла в локальный каталог.

При запуске следующего кода всегда выводится «ошибка загрузки файла». Кажется, что он не всегда соответствует условию для функции move_uploaded_media, и поэтому $ result не устанавливается?

Есть ли явные ошибки?

<?php

$page_title = 'Admin | Multimedia Portfolio';

include('includes/admin_header.html');

if(isset($_POST['submitted']))
{
    $uploadDir = 'files/';

    $fileName = $_FILES['userfile']['name'];
    $tmpName = $_FILES['userfile']['tmp_name'];
    $fileSize = $_FILES['userfile']['size'];
    $fileType = $_FILES['userfile']['type'];

    $filePath = $uploadDir . $fileName;

    $result = move_uploaded_file($tmpName, $filePath);
    if (!$result) {
        echo "Error uploading file"; // Here is were the it always gets caught
        exit;
    }

    require_once('mysql_connect.php');

    if(!get_magic_quotes_gpc())
    {
        $fileName = addslashes($fileName);
        $filePath = addslashes($filePath);
    }

    $query = "INSERT INTO files (name, size, type, path ) VALUES ('$fileName', '$fileSize', '$fileType', '$filePath')";

    mysqli_query($dbc, $query) or die('Error, query failed : ' . mysql_error());

    mysqli_close($dbc);

    echo "<br>Files uploaded<br>";

    }

?>

<div id="content-wrap">

<h1>Upload Media</h1>

<div id="content">

    <form method="post" action="upload.php" encytype="multipart/form-data">

    <fieldset>

        <div class="entry">

                <label>Which media <span class="highlight">file</span> would you like to upload?</label>
                <input type="file" name="userfile" id="userfile" size="30" />

            </div>

                <fieldset id="button">
                <input type="submit" value="Register" />
                <input type="hidden" name="submitted" value="TRUE" />
            </fieldset>

        </fieldset>

    </form>

</div>

</div>

<?php

include('includes/admin_footer.html');

?>

Ответы [ 2 ]

5 голосов
/ 09 февраля 2010

Не уверен, есть ли еще, но у вас есть encytype вместо enctype в вашем <form>.

1 голос
/ 09 февраля 2010

Вы также можете выполнить проверку is_uploaded_file() временного файла, просто чтобы быть уверенным ...

...