[英]Return img from php on nginx
以下似乎是使用php從數據庫返回圖像的標准代碼。 當我使用php cli(和硬編碼名稱)運行代碼時,我從數據庫中獲取了正確的內容(保存到文件時可以靜態顯示的難以理解的斑點)。 但是,當我嘗試通過瀏覽器訪問相同文件時,沒有任何顯示。 chrome中的開發工具報告標頭大小為183 B,內容大小為0。
<?php
$conn = odbc_connect('MySQL','','');
$query = "SELECT img, length(img) as length from imgs WHERE name = '".$_GET['name']."'";
$result = odbc_exec($conn, $query);
$row = odbc_fetch_array($result);
header("content-type: image/jpeg");
header("Content-Length: ".$row['length']);
echo $row['img'];
?>
我在想這可能與我的Nginx配置文件有關
server {
location / {
root /var/www/html;
}
location /images/ {
root /data;
}
location ~ /.*\.php$ {
if ($fastcgi_script_name ~ /(.*\.php)$) {
set $valid_fastcgi_script_name $1;
}
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/cgi-bin/$valid_fastcgi_script_name;
include fastcgi_params;
}
}
有任何想法嗎? 謝謝。
我的猜測是,您需要在將內容發送到瀏覽器后刷新fastcgi請求。 您應該使用fastcgi_finish_request
,以便刷新請求。 參見http://www.php.net/manual/en/function.fastcgi-finish-request.php
原來,我再次被SELinux挫敗了。 還是謝謝大家
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.