imagepng - создание в / публичной папке - PullRequest
0 голосов
/ 30 января 2010

Как мне указать путь к файлу для функции imagepng? Кажется, что файл всегда создается в папке "/ public" при использовании в MVC Zend Framework и даже когда указан явный путь к файлу. Это из-за правил переписывания, которые у меня есть? Мои правила перезаписи .htaccess приведены ниже:

FileETag none
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 years"
ExpiresByType image/gif "access plus 10 years"
ExpiresByType image/jpeg "access plus 10 years"
ExpiresByType image/png "access plus 10 years"
ExpiresByType text/css "access plus 10 years"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType text/javascript "access plus 10 years"
ExpiresByType application/x-unknown-content-type "access plus 10 years"
ExpiresByType application/x-javascript "access plus 10 years"
</IfModule>

ExpiresActive On
ExpiresDefault A604800
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType text/html A300
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
ExpiresActive Off
</FilesMatch>


# compress all text & html:
AddOutputFilterByType DEFLATE text/html text/plain text/xml

# Or, compress certain file types by extension:
<Files *.html>
SetOutputFilter DEFLATE
</Files>

RewriteEngine   on
# The leading %{DOCUMENT_ROOT} is necessary when used in VirtualHost context
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -s [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -l [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ index.php [NC,L]

1 Ответ

1 голос
/ 30 января 2010

РЕДАКТИРОВАТЬ : При ближайшем рассмотрении это ваши правила переписывания ... Почему вы используете %{DOCUMENT_ROOT}? Вам не нужно упоминать об этом в вашем стеке перезаписи. Это должно быть отображено непосредственно в вашем конфиге vhost. Если вам нужно было сделать так, чтобы Zend работал, что-то не так в конфигурации вашего приложения или в вашем vhost. Если ваш хостинг находится вне подкаталога docroot, установите baseurl на фронт-контроллере.


По какому пути вы пытаетесь написать? Вы должны использовать полный путь файловой системы, куда вы хотите записать образ, например:

imagepng($image, APPLICATION_PATH.'/public/images/generated_image.png');

Вероятно, вам следует использовать другие динамические инструменты для построения этого пути на случай, если вы когда-нибудь измените фактический каталог на public, но это был простой пример: -)

Если вы используете относительный путь, путь всегда будет относительно public, потому что в нем находится каталог dir index.php, и он обрабатывает все. URL в браузере не обязательно отражает путь, по которому вы работаете, из-за стандартных правил / маршрутизации перезаписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...