Разрешение файла изображения - изменение размера изображения - PullRequest
1 голос
/ 07 декабря 2009

PHP MYSQL

Привет, у меня интересная проблема. У меня есть форма в моей cms, которая позволяет администратору загружать изображения на сервер. Сценарий изменяет размеры изображений до миниатюр (высота 170 пикселей) и большого изображения (высота 600 пикселей). Размер миниатюр составляет около 16000 КБ, а больших изображений - около 160 000 КБ. Я не устанавливаю права доступа к файлу и просто позволяю этому произойти автоматически. Когда я захожу на сайт, я вижу миниатюры, но я не вижу полноразмерных изображений, и я отследил проблему до прав доступа к файлам. Миниатюры имеют разрешения rw-r-r, а большие изображения имеют разрешения rw-- - -. Т.е. у общественности нет разрешения на просмотр больших изображений. Я сохраняю большие изображения с именем оригинала и сохраняю миниатюры с добавленным в конец _thumbnail. Почему разрешения для больших изображений могут быть разными, если они одновременно загружаются и изменяются в размере одним и тем же сценарием, а я не устанавливаю разрешения для файлов? Размер имеет к этому какое-то отношение? Эта проблема возникает только при загрузке изображений на рабочий сервер, а не при работе на локальном компьютере. Спасибо Andrew

Ответы [ 2 ]

2 голосов
/ 07 декабря 2009

Как вы меняете размеры изображений? Вы используете внешнюю программу?

Это всего лишь предположение, но здесь идет

  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 resizer перезаписывает image.jpg, но оставляет права как rw- --- --- (600)

Чтобы проверить эту теорию, закомментируйте ту часть, где она изменяет размер image.jpg до 600px, а затем проверьте права доступа к первоначально загруженному изображению. Если им 600, то это твоя проблема.

Несмотря на это, простой chmod решит вашу проблему.

0 голосов
/ 07 декабря 2009

Я предлагаю вам сначала взглянуть на ваш файл php.ini

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

Настройки по умолчанию: 2M. Вам нужно будет изменить его, как я упоминал здесь. Если он все еще не работает, пожалуйста, вернитесь.

...