`
ldl_xz
  • 浏览: 68813 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php 文件下载 出现下载文件内容乱码损坏的解决方法

 
阅读更多

在做PHP程序时,需要使用PHP做的文件下载

那做就做呗把代码复制过来改了一改.

很多效果也出来了

那么点击下载后,恩,本以为搞定了文件下载,谁知道,图片打开的时候提示文件损坏,这我就观察了文件的大小.似乎真是多了 1KB左右.

使用PS打开,恩,提示了损坏,不过图象可以出来.

那么我就认为是 那多出来的 1kb的问题了.

然后,我把一个txt上传上去,然后下载.

果然发现,文件的前面以及后面,都多了几个 字符.

那我就在想应该怎么去掉啊.各种百度,谷歌,上论坛提问.

最后,经过我一个多小时的搜索,终于找到了解决办法.

代码如下

public function download()
{
    $upload=M('upload');
    $data=$upload->find($_GET['id']);

    if(empty($data)){
        header('HTTP/1.0 404 Not Found');
        header('Location: .');
    }else{

    $path='./public/Uploads/'.$data['savename'];

    header("Content-Type:".$data['type']);

    header('Content-Disposition: attachment; filename="'.$data['name'].'"');

    header('Content-Length:'.$data['size']);

    ob_clean();
    flush();

    readfile($path);

    }
}

注意:

ob_clean();
flush();

这个是关键哦.用了这两函数,搞定,图片正常打开,文字也不乱码.


转载自:http://www.9958.pw/post/download_content

分享到:
评论

相关推荐

    php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)

    通过清除缓冲区并立即发送数据,我们可以避免额外的数据被添加到文件内容中,从而解决了文件乱码或损坏的问题。 此外,还需要确保文件存储和读取的路径是正确的,以及文件本身没有被错误地编码或处理。例如,如果...

    MySQL乱码解决方案数据库乱码

    根据提供的标题、描述、标签以及部分内容来看,本文将围绕MySQL乱码问题进行深入探讨,并提供有效的解决方案。 #### 二、MySQL乱码的原因 1. **服务器端字符集设置不当**:MySQL服务器默认字符集可能与实际使用的...

    php强制下载文件函数

    关于PHP下载文件可能出现的问题,比如文件内容乱码或损坏,可能涉及到编码、文件读取方式、缓冲区设置等因素。解决这类问题通常需要检查文件的编码、确保正确设置HTTP响应头,以及检查服务器的配置。 总的来说,PHP...

    php下载excel无法打开的解决方法

    以下是一些关键知识点,可以帮助你解决PHP下载Excel文件无法打开的问题: 1. **避免在文件下载过程中输出其他信息**: 在下载文件前,确保没有任何非文件内容被输出到浏览器。例如,避免使用`echo`打印日志信息或...

    txt文件编码批量转换器

    2,重要文件请不要用此软件转换,个人开发的小工具,而且是第一个版本,不保证对文件无损坏,使用需谨慎。 3,使用过程中,如碰到任何问题,请到http://www.piikee.net/index.php留言告诉我出了什么问题,我会在下...

    Dede后台验证码不显示三种解决方案

    若后台验证码采用的是随机单词形式,而`include/data/words/words.txt`文件丢失或损坏,也会导致验证码无法正常生成。 **解决方案:** 1. **恢复`words.txt`文件:** - 如果备份中有该文件,直接从备份中恢复。 -...

    mysql中文乱码处理.docx

    总之,解决MySQL中文乱码问题需要关注数据库、表、列、连接以及数据文件的字符集设置,并确保它们之间的协调一致性。在处理过程中,及时备份数据,做好测试,以避免数据丢失或损坏。在进行数据迁移或系统升级时,...

    dvwa+xampp搭建显示乱码的问题及解决方案

    解决方法是使用较旧版本的XAMPP(如1.7.1),这个版本中还包含ZendOptimizer,能够在安装前对SHOPEX进行优化,从而解决乱码问题。安装好旧版本的XAMPP后,SHOPEX应该能够顺利安装并运行。如果需要使用新版本的XAMPP...

    Eclipse for PHP 编码设置.docx

    4. 解决已有文件的乱码问题:如果你已经有一些编码不一致的文件,在用Eclipse打开时可能会出现乱码。这时,可以使用Notepad++或其他文本编辑器,打开这些文件,选择与Eclipse设置相同的编码(如`UTF-8`),然后使用`...

    GBK批量转utf8(支持整个目录)

    2. **非文本文件**:不是所有文件都是文本文件,例如图片、音频或视频文件,这些文件无需转换,强行转换可能导致文件损坏。 3. **编码冲突**:如果你的项目中既有GBK编码的文件,又有UTF-8编码的文件,可能会引发...

    PHP5+UTF8多文件上传类

    1. **PHP5+UTF8环境的文件上传类**: 说明该上传类是为使用PHP5版本语言和UTF-8编码环境所设计,考虑到在不同环境下,文件上传和编码处理的差异性,确保上传过程不会因编码问题导致乱码或者文件损坏。 2. **支持多...

    慎用ext.zip

    在IT领域,开发者和系统管理员经常使用zip文件来存储、传输和分发代码、文档或软件包。它们可以方便地进行压缩,节省存储空间,并且可以通过密码保护增加安全性。 然而,“慎用ext.zip”的警告可能源于以下几点: ...

    php 截取GBK文档某个位置开始的n个字符方法

    在实际应用中,处理文件编码问题时可能会遇到各种意外情况,如乱码、文件损坏等。因此,建议在实现具体功能时,先对文件进行验证,确保文件编码格式和预期一致,且文件内容完好无损。另外,在脚本中合理处理可能出现...

    过虑word复制引起的不能提交

    分析这个PHP文件可以帮助我们理解具体实现过程。 **PHP处理步骤**: 1. 读取Word文档内容,可以使用PHP的`file_get_contents`或`fopen`/`fgets`组合。 2. 转换字符编码,使用`iconv`或`mb_convert_encoding`。 3. ...

    Vtiger-5.2.1-找不到记录时的语法习惯问题完美修正包

    在Vtiger这样的多语言环境中,如果系统配置不当,或者数据库、文件系统与应用程序之间的编码不一致,就可能出现中文显示为乱码的情况。解决这个问题可能需要调整数据库的字符集设置,更新代码中的编码声明,或者对已...

    PHP转换文件夹下所有文件编码的实现代码

    在PHP编程中,有时我们需要处理不同编码格式的文件,特别是在涉及到多语言网站或者代码迁移时。本篇文章将探讨如何使用PHP实现将...同时,确保在进行编码转换时,充分考虑到可能出现的错误情况,以避免数据丢失或损坏。

    php批量转换文件夹下所有文件编码的函数类

    - 如果是文件,读取文件内容,使用`iconv`函数进行编码转换。`iconv`函数将指定编码的字符串转换为目标编码。在这个例子中,它将`$input_encoding`编码的字符串转换为`$output_encoding`编码。 - 转换后的字符串...

    php简单判断文本编码的方法

    2. **输入验证**:在接收用户输入或读取外部文件时,应该验证其编码,防止因乱码导致的错误。 3. **错误处理**:当编码转换失败时,应有适当的错误处理机制,如返回默认编码或抛出异常。 4. **使用现成的库**:如`...

Global site tag (gtag.js) - Google Analytics