0

ディレクトリを chmod せずに php で画像をアップロードする方法があるかどうか教えてください

ftp_site($conn_id, 'CHMOD 0777, /www/images/thumbs');

[function.move-uploaded-file]: failed to open stream: Permission...エラーを回避するには?

ありがとう!

4

1 に答える 1

4

絶対。

なぜftp_site()を使用しているのかわかりません。アップロードしたファイルを別のサーバーにFTPで転送しているのですか、それともphpファイルを提供しているのと同じマシンにアップロードするアップロードフォームを作成しようとしているだけですか?

スクリプトを実行しているサーバーへのアップロードに取り組んでいると仮定すると、いくつかのことがあります。Webサーバーを実行しているユーザー(httpd、apache、lighttpdなど)が$uploadPathへの書き込みアクセス権を持っていることを確認してください。これを行うには、chmod 0777を使用できますが、システム上のすべてのユーザーがこのフォルダーに書き込むことができるため、これは安全ではありません。apacheにのみ書き込むことができます。この部分の設定についてサポートが必要な場合は、http: //yaauie.com/meから私に連絡してください。コマンドラインであなたがどれほど快適かわからないので、jibberjabberであなたを圧倒したくありません

引っ掛かっている場所のトラブルシューティングに役立つ可能性のある簡単な手続き型コードを次に示します。アップロードフォームをこのスクリプトに向けてテストします。

<?php
// Set the upload path
$uploadPath = realpath('./images/thumbs/');

// test to see if the upload path is a directory that is writable
if(is_dir($uploadPath) && is_writable($uploadPath)) {

    // create the full path for the end result file
    $uploadFile = $uploadPath.basename($_FILES['userfile']['name']);

    // try to move the uploaded file
    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile)) {
        echo 'Sucessfully moved file to "'.$uploadFile.'"';
    } else {
        echo 'Directory is writable, but we could not move the uploaded file to it.';
    }
} else {
    echo 'Either "'.$uploadPath.'" is not a directory, or it is not writable.';
}
?>
于 2009-03-11T04:07:54.437 に答える