簡體   English   中英

在Nginx上從PHP返回img

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM