-1

MIME タイプをimage/png.

.htaccess私が持っているファイルのおかげで、次の方法でイメージにアクセスできます。

  • /img/img
  • /img/img.png
  • /img/img.php

それらはすべて私のブラウザーでは正常に機能していますが、Teamspeak サーバーには読み込まれません。

4

2 に答える 2

1

何が起こるかわかりませんが、これらは返されるヘッダーです:

CF-Cache-Status 
MISS
CF-RAY  
21cddbcc942220ae-LAX
Cache-Control   
no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection  
keep-alive
Content-Encoding    
gzip
Content-Type    
text/html; charset=UTF-8
Date    
Fri, 28 Aug 2015 06:11:24 GMT
Expires 
Thu, 19 Nov 1981 08:52:00 GMT
Pragma  
no-cache
Server  
cloudflare-nginx
Transfer-Encoding   
chunked
Vary    
Accept-Encoding
X-Powered-By    
PHP/5.4.41-0+deb7u1

まず、text/html を返します。これは、.png 画像の適切な MIME タイプではありません。

次に、スクリプトは実際に .png データを返す必要があります。

ここでは、GD または ImageMagick を使用してスクリプトで .png を作成することを計画していると仮定していますが、実際に適切な MIME タイプと適切なその MIME タイプに従うと予想される画像データ。

スクリプトの先頭で MIME タイプを設定するのは、次のように簡単です。

header('Content-type: image/png'); 

Cloudflareも通過しています。デバッグが完了し、スクリプトが期待どおりに動作していることを確認するまで、Cloudflare をオフにしておく必要があります。

于 2015-08-28T06:18:42.427 に答える
0

@gview の回答のおかげで、Cloudflare がフォルダーを保護していることがわかった/img/ので、これを停止するページ ルールを作成しました。念のため、これは私のスクリプトであり、正しいヘッダーを設定します。

# Generate $im and Stuff
# ...

# Now Output it
http_response_code(200);
$file = "./temp.png";
imagepng($im, $file);
header("Content-Type: image/png");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
于 2016-10-06T17:40:35.547 に答える