PHP远程下载图片损坏问题

代码如下:

<?php
	header("Content-type=html/text;charset=utf-8");
 	function download($file_name,$file_sub_dir)
	{
		$file_name = iconv("utf-8","gb2312",$file_name);
		$file_path = $_SERVER[‘DOCUMENT_ROOT‘].$file_sub_dir.$file_name;
		if(!file_exists($file_path))
		{
			echo "文件不存在";
			return;
		}

		$fp = fopen($file_path,"rb");
		$file_size = filesize($file_path);
		header("Content-type: application/octet-stream");
		header("Accept-Ranges: bytes");
		header("Accept-Length: $file_size");
		header("Content-Disposition: attachment;filename=".$file_name);

		$buffer = 1024;
		$file_count = 0;
		while(!feof($fp) && $file_size-$file_count>0)
		{
			$file_data = fread($fp,$buffer);
			$file_count+=$buffer;
			echo $file_data;
		}
		fclose($fp);
	}
	download("picture1.jpg","/txt/");
?>

  下载的图片是成功了,但是打开图片时,显示图片损坏;

害我花了一个小时调试,最终发现了问题所在:文件编码的原因;

新建的文件必须是utf-8 (特别注意:用记事本另存为utf-8,的方法是不行的,必须新建一个utf-8文件),可用notepad++,sublime等编辑器创建。

时间: 2024-10-12 16:23:25

PHP远程下载图片损坏问题的相关文章

php 远程下载图片到本地

大家好,从今天开始,小弟开始写写博客,把自己在工作中碰到的问题的解决方法纪录下来,方便以后查找,也给予别人方便,小弟不才,第一次写博客,有什么不足之处请指出,谢谢! 今天纪录的是怎么通过PHP远程把图片下载到本地,废话不多说,上代码. <?php/**功能:php完美实现下载远程图片保存到本地*参数:文件url,保存文件目录,保存文件名称,使用的下载方式*当保存文件名称为空时则使用远程文件原来的名称*/function getImage($url,$save_dir='',$filename='

java远程下载图片

从别的网站复制文章的时候,要把图片下载到我们网站,再把图片地址换成我们网站的地址 <img id="mbkenHUwhWeOj9U8K6c8LlAXaes3oXit-M4SnmRvB4wXXEue2ol7MviqfDlnDFgp.jpg" alt="图片" onerror="NextPic('/attached/image/mbkenHUwhWeOj9U8K6c8LlAXaes3oXit-M4SnmRvB4wXXEue2ol7MviqfDlnDFgp

php远程下载图片

这一天上班真的累啊,趁着这会闲写个抓取图片的码子.话不多少上代码!! 1 <?php 2 //要抓取的网址: 3 $url = 'http://www.zixue.it/'; 4 //取回网页内容: 5 $tmp = file_get_contents($url); 6 //正则获取图片地址: 7 preg_match_all('/<img[^>]*src="([^"]*(?:jpg|png|gif|jpeg))"[^>]*>/i',$tmp,$

远程下载图片

function get_url_image($url){ $ext = explode('.', $url); $ext = strtolower(end($ext)); if($ext != "gif" && $ext != "jpg" && $ext != "png" && $ext != "bmp" && $ext != "jpeg")

我的第一个python爬虫程序(从百度贴吧自动下载图片)

这个学期开设了编译原理和形式语言与自动机,里面都有介绍过正则表达式,今天自己学了学用python正则表达式写爬虫 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成

一个失误导致微信下载图片接口Token失效

公司的应用调了一个微信上传下载图片的接口,本来在线上跑的好好的,什么问题没有,但是这两天总是不定时的出现下载下来的图片损坏,拿着Token和serverid去接口测试网页验证,返回的是Token失效了,返回信息:"errcode": 40001, "errmsg": "invalid credential, access_token is invalid or not latest hint: [17ZG50664ent3].我是把Token和ticket

PHP (爬虫)下载图片

原文地址:http://www.phpfensi.com/php/20140107/1128.html 通过图片地地址把图片保存到本址,这里我们直接通过readfile读取然后通过fopen保存即可,实例代码如下: <?php /** * 通过图片的远程url,下载到本地 * @param: $url为图片远程链接 * @param: $filename为下载图片后保存的文件名 */ function GrabImage($url,$filename) { if($url==""

利用Node 搭配uglify-js压缩js文件,批量下载图片到本地

Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面对几十个JS文件一遍遍来回“复制-压缩-创建-粘贴”,这样太不人性化了. 于是可以借助Node + uglify-js 轻松实现.(前提你会点node操作) 1.首先看一下目录: |--uglifyJS |--js |--test1.js |--test2.js |--uglify.js   //这

【iOS开发之旅】AFNetworking与SDWebImage下载图片

AFNetworking与SDWebImage下载图片 // // ViewController.m // AFNetworkingDemo // // Created by ChenQianPing on 16/1/31. // Copyright © 2016年 chenqp. All rights reserved. // #import "ViewController.h" #import "AFNetworking.h" #import "UII