2009-12-07 20 views
1

PHP mySQL圖像文件許可 - 圖像大小調整

嗨,我有一個有趣的問題。 我在我的cms中有一個表單,允許管理員將圖像上傳到服務器。該腳本將圖像調整爲縮略圖(170px高度)和大圖像(600px高度)。縮略圖大小約爲16000k,大圖像大小約爲160,000k。 我沒有設置文件權限,只是讓它自動發生。 當我去到網站,我可以看到縮略圖,但我無法看到全尺寸的圖像,我已經跟蹤到問題的文件權限。縮略圖具有rw-r-r權限,較大的圖像具有rw - - - 權限。即公衆沒有權限查看大圖像。我用原始文件的名字保存大圖像,然後將_thumbnail附加到結尾處以保存縮略圖。 爲什麼大型圖像的權限在通過相同腳本上傳和調整大小時以及我沒有設置文件權限時會有所不同?這個尺寸與它有什麼關係?將圖像上傳到生產服務器時,我只在遇到這個問題,而不是在本地機器上工作。 感謝 安德魯

+0

16M的拇指和160M的全尺寸圖像?!你在拍攝外星系的照片嗎? – 2009-12-07 10:43:26

+0

嗯,我只是使用GD來調整正常的JPEG圖像。你如何建議我讓他們變小? – andrew 2009-12-07 22:06:54

回答

2

你如何調整圖像大小?你在使用外部程序嗎?

這只是一個猜測,但在這裏,通過您的形式去

  1. 管理員上傳image.jpg的
  2. PHP腳本編寫image.jpg文件上傳到文件系統RW----( 600)
  3. PHP腳本調用圖像縮放程序來創建image_thumbnail.jpg
  4. 圖像縮放寫入image_thumbnail.jpg作爲RW- R-- R--(644)
  5. PHP腳本調用圖像縮放程序來創建尺寸調整的圖像.jpg
  6. 圖像縮放覆蓋image.jpg的,但保留的權限是rw- --- ---(600)

爲了驗證這一理論,註釋掉在那裏它會調整到image.jpg的的600px的一部分,然後檢查最初上傳的圖像的權限。如果他們是600,那麼你的問題就是這樣。

儘管如此,簡單的chmod將解決您的問題。

+0

我正在使用自己的圖像調整器,它只是將圖像調整爲縮略圖大小和較大的大小,並將它們保存到服務器上的文件中。當您將文件保存到每個文件的服務器時,您會設置文件權限嗎? – andrew 2009-12-07 22:09:28

+0

是的,我會寫文件,關閉它,然後chmod它是我想要的 – karoberts 2009-12-07 22:20:51

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。你需要像我在這裏提到的那樣改變它。如果它仍然不能工作,請回來。

+0

我無法訪問php.ini,但我可以在腳本的持續時間內設置這些值嗎?使用ini_set? – andrew 2009-12-07 22:11:11

+0

ini_get('post_max_size')和ini_get('upload_max_filesize')應該允許您查看值。 – Shiv 2009-12-08 00:35:17

+0

我不認爲有可能使用ini_set更改upload_max_filesize。值目前爲 post_max_size爲8M 上傳最大文件大小爲:2M。 此外,它還在上傳文件,只是權限正在改變爲更大的圖像。我可能只是做karoberts建議和chmod文件,看看它有幫助。 – andrew 2009-12-08 03:40:00