PHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器
Posted
技术标签:
【中文标题】PHP header(\'Content-Type : image/jpeg\') 适用于本地主机但不适用于真实服务器【英文标题】:PHP header('Content-Type : image/jpeg') works on localhost but not working on real serverPHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器 【发布时间】:2017-03-16 21:33:42 【问题描述】:我想对用户隐藏图像 url,所以我使用 php header()
函数,当我在 Bluehost 上托管我的网站时出现问题,它在 localhost 上运行良好。
这是我访问图像的功能。
function download($name = '', $tiny = '0')
if ($name != '')
$file = $this->mdl->get_file($name);
if($file)
$mime = mime_content_type('./'.$file->path.$file->name);
header('Content-Type: '.$mime);
echo file_get_contents('./'.$file->path.$file->name);
这是模型上的 get_file 函数:
function get_file($name='')
if($name!='')
return $this->db->select('*')
->from('docs')
->where('name',$name)
->get()
->row();
return false;
感谢任何有帮助的答案。
【问题讨论】:
bluehost 发生了什么?有什么错误吗? 当我想使用 Mozilla 查看图像时出现以下错误:图像“mywebsitename.com/index.php/main/download/1234556.jpg”无法显示,因为它包含错误。但是当我使用 Chrom 浏览器时,它只显示一个小框而不是图像。 @Gabriel Heming 【参考方案1】:只能在任何数据发送到浏览器之前设置标题。
检查<?php
标记前的空格。
检查您的文件是否保存为没有 BOM 的 UTF-8,BO 标记可能被解释为输出。
检查您的托管商是否向您的页面添加了其他内容/标题。
【讨论】:
这应该是 cmets 中的问题,而不是答案,因为我们不知道这些事情是否与他当前的设置有关。 header() 适用于 'Content-type : application/pdf' 但给出错误 'Content-type : image/...'【参考方案2】:基本上这种类型的问题发生在 php 标签中存在任何空格或换行符或在 header 函数之前打印的任何内容时。
试试这个:ob_clean(); 在标题之前
【讨论】:
以上是关于PHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器的主要内容,如果未能解决你的问题,请参考以下文章
PHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器
PHP插入header('content-type:text/html;charset="utf-8')和error_reporting()
PHP中header('content-type:text/html;charset="utf-8')和error_reporting()的作用