如何指定imagepng函数的文件路径?当在MVC Zend Framework中使用时,甚至在提供显式文件路径时,似乎总是在“/ public”文件夹中创建文件。是因为我有重写规则吗?我的.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]
答案 0 :(得分:1)
编辑:仔细检查后,这是您的重写规则...为什么使用%{DOCUMENT_ROOT}
?你不应该在你的重写堆栈中提到它。这应该直接映射到你的vhost配置中。如果你不得不这样做以使Zend工作,那么你的应用程序配置或你的虚拟主机中的某些内容是错误的。如果您托管docroot的子目录,则在前端控制器上设置baseurl。
你想写的路径是什么?您应该使用完整的文件系统路径到您想要写入图像的位置:
imagepng($image, APPLICATION_PATH.'/public/images/generated_image.png');
你应该使用其他动态工具来构建那条路径,以防你改变public
的实际目录,但这只是一个简单的例子: - )
如果你使用相对路径,路径将始终相对于public
,因为这是dir index.php所在并且它处理所有内容。由于标准的重写规则/路由,浏览器中的URL无法反映您正在运行的路径。