PHP标头('Content-Type:image / jpeg')适用于localhost但不适用于真实服务器

时间:2016-11-03 10:27:26

标签: php codeigniter phpmyadmin

我想隐藏用户的图片网址,所以我使用的是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;
}

任何有用的答案都是适用的。

2 个答案:

答案 0 :(得分:1)

只有在将任何数据发送到浏览器之前才能设置标题。

检查<?php标记前的空格。

检查您的文件是否保存为没有BOM的UTF-8,BO标记可以解释为输出。

检查您的主机是否在页面中添加了其他内容/标题。

答案 1 :(得分:0)

基本上,当在php标记之外存在任何空格或新行或在标题函数之前打印的任何内容时,会出现此类问题。

  • 试试这个:
标题

之前的

ob_clean();