проблема разрешения при загрузке через php в папку на моем локальном диске - PullRequest
3 голосов
/ 12 августа 2011

Я создал папку на своем диске c (c: / artwork), которую я использую для загрузки файлов через форму в php, например:

<input name="file" type="file">

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

Если я вручную копирую и вставляюкартинка в той же папке, нет проблем.Я могу открывать и просматривать фотографии отлично!

Я предполагаю, что это проблема разрешения при загрузке через php, но что?Как мне это исправить?

Спасибо

edit (добавлен код)

$destination = 'c:/public_html/discography/artwork/'; // path to the upload folder

if (is_dir($destination) && is_writable($destination)) {
    // if file already exists, ask what to do

    // upload the file  
    $ok = move_uploaded_file($_FILES['file']['tmp_name'], $destination . $_FILES['file']['name']);

    // if file uploaded, go ahead an insert record in database
    if ($ok) {
        $stmt = $conn->stmt_init(); // initialize a prepared statement

        $stmt->prepare($sql);
        $stmt->bind_param('s', $_FILES['file']['name']);
        $stmt->execute();
        $stmt->free_result(); // free the database resources for other queries

        // if success
        if ($stmt->affected_rows > 0) {
            $success = true;
        } else {
            $err_msg = $stmt->error;
        }

        $stmt->close(); // close statement  
    }

} else {
    $err_msg = "'$destination' must be a valid, writable directory!";
}

Ответы [ 2 ]

1 голос
/ 12 августа 2011

если вы не настроили директивы upload_tmp_dir в php.ini, то файлы сохраняются во временной папке. В вашем случае C: \ Windows \ Temp, если вы используете IIS и, следовательно, он наследует разрешение этого каталога вместо c: / public_html / discography / artwork /.

Чтобы исправить это, либо установите разрешение для каталога Temp, либо определите другое место для хранения файлов tmp в php.ini.

0 голосов
/ 12 августа 2011

Попробуйте использовать chmod () , чтобы изменить разрешения для этого файла.

...