1

PHP mySQL

こんにちは、私は興味深い問題を抱えています。管理者がサーバーに画像をアップロードできるようにするフォームがcmsにあります。スクリプトは、画像のサイズをサムネイル(高さ170ピクセル)と大きな画像(高さ600ピクセル)に変更します。サムネイルのサイズは約16000kで、大きな画像のサイズは約160,000kです。ファイルのアクセス許可を設定せず、自動的に実行させます。サイトにアクセスすると、サムネイルは表示されますが、フルサイズの画像は表示されません。ファイルのアクセス許可まで問題を追跡しました。サムネイルにはrw-rr権限があり、大きな画像にはrw------権限があります。つまり、一般の人々は大きな画像を表示する許可を持っていません。元の名前で大きな画像を保存し、最後に_thumbnailを追加してサムネイルを保存します。同じスクリプトでアップロードとサイズ変更の両方を行った場合と、ファイルのアクセス許可を設定しない場合に、大きな画像のアクセス許可が異なるのはなぜですか?サイズはそれと関係がありますか?この問題が発生するのは、ローカルマシンで作業しているときではなく、本番サーバーに画像をアップロードするときだけです。アンドリューありがとう

4

2 に答える 2

2

画像のサイズをどのように変更していますか?外部プログラムを使用していますか?

これは単なる推測ですが、ここに行きます

  1. 管理者はフォームを介してimage.jpgをアップロードします
  2. phpスクリプトは、アップロードされたimage.jpgをrw- --- ---(600)としてファイルシステムに書き込みます。
  3. phpスクリプトは、画像リサイザープログラムを呼び出してimage_thumbnail.jpgを作成します
  4. image resizerは、image_thumbnail.jpgをrw- r-- r--(644)として書き込みます。
  5. phpスクリプトは、画像リサイザープログラムを呼び出して、サイズ変更されたimage.jpgを作成します
  6. image resizerはimage.jpgを上書きしますが、権限はrw- --- ---(600)のままにします

この理論をテストするには、image.jpgのサイズを600pxに変更する部分をコメントアウトしてから、最初にアップロードされた画像の権限を確認します。600の場合、問題があります。

とにかく、簡単chmodに問題を解決できます。

于 2009-12-07T04:47:07.283 に答える
0

最初にphp.iniファイルを確認することをお勧めします

;Maximum allowed size for uploaded files.
upload_max_filesize = 10M
;Maximum size of POST data that PHP will accept.
post_max_size = 10M

デフォルト設定は2Mです。ここで述べたように変更する必要があります。それでも機能しない場合は、戻ってください。

于 2009-12-07T04:45:51.853 に答える