我正在使用最新CI。我在当地工作时没有任何问题。但当我将我的作品转移到实时服务器时,我遇到了一个问题。
当我从下载标签下载文件时,文件正在以正确的大小和格式下载。但是当我打开下载的文件时,例如,如果是图像,图像没有显示,或者如果是单词,则要求选择编码类型,选择编码类型后,内容就是垃圾字符。
如何解决这个问题。?
提前致谢。
我用来下载文件的代码:
$content = file_get_contents($file_loc);
force_download(FILENAME.EXT, $content);
答案 0 :(得分:4)
这适合我。
ob_clean();
$data = file_get_contents("localhost/qlip/uploads/filename.jpg"); //assuming my file is on localhost
$name = 'document.jpg';
force_download($name,$data);
答案 1 :(得分:2)
尝试以下代码:
<?php
function downloadFile($file){
$file_name = $file;
$mime = 'application/force-download';
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file_name);
exit();
}
?>
和通话功能:
<?php
downloadFile("./files/image.jpg");
?>
如果文件“image.jpg”是正确的地址
答案 2 :(得分:0)
如果您愿意,可以试试这个:
function download()
{
// asumming you have http://www.domain.com/index.php/controller/download/file_name/extension/
$extension = $this->uri->segment(4); // file extension
$file_name = $this->uri->segment(3) . '.' . $extension; // file name
$file_path = FCPATH . 'application/documentos/' . $file_name; // absolute path to file
if (is_file($file_path)) {
$mime = 'application/force-download';
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: ' . $mime);
header('Content-Disposition: attachment; filename="' . $file_name . '"'); file name
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile(base_url() . 'application/documentos/' . $file_name); // relative path to file
exit();
} else {
redirect('/welcome/');
}
}
答案 3 :(得分:0)
添加ob_clean();在force_download()的代码之前;否则图像,文字文件被破坏。
ob_clean();
$content = file_get_contents($file_loc);
force_download(FILENAME.EXT, $content);
答案 4 :(得分:0)
:对我有用
$data = 'Here is some text!';
$name = 'mytext.txt';
force_download($name, $data);
或:
// Contents of photo.jpg will be automatically read
force_download('/path/to/photo.jpg', NULL);
答案 5 :(得分:0)
您的文件路径不正确。修复路径以纠正和运行。应该工作。