我用PHP测试文件下载功能,但是下载下来的图片却总是损坏的,代码如下:
//下载任何格式的文件用:header("Content-type: application/octet-stream");//顺便给你一个封装好的方法,你只要在需要的地方调用它就好了function download($file_url,$new_name=''){if(!isset($file_url)||trim($file_url)==''){return '500';}if(!file_exists($file_url)){ //检查文件是否存在return '404';}$file_name=basename($file_url);$file_type=explode('.',$file_url);$file_type=$file_type[count($file_type)-1];$file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;$file_type=fopen($file_url,'r'); //打开文件//输入文件标签header("Content-type: application/octet-stream");header("Accept-Ranges: bytes");header("Accept-Length: ".filesize($file_url));header("Content-Disposition: attachment; filename=".$file_name);//输出文件内容echo fread($file_type,filesize($file_url));fclose($file_type);}//注意:调用方法:download("./201404/1.jpg");
下面几个回答的都tm没学过php在那水,下载的图片损坏,首先你已经下载了,文件没问题,但文件可能被压缩了, 加入这个选项 CURLOPT_ENCODING => "", 这是应对所有压缩的,一般都是gzip,上面不行就换成CURLOPT_ENCODING => "gzip",,如果还不行,把图片拖到浏览器看能不能打开,能打开说明是图片,只是格式window不支持,可能是webp格式的,getimagesize对webp格式的图片只会返回false,你要是想让他在window上显示,用php转化成jpg吧: $img = imagecreatefromwebp('./response.webp');$info=imagejpeg($img, 'a.jpg'); var_dump($info);
必须用CURL的方法下载,才能保证完整性你用file_get_contents,如果对面返回404,那么就是你说的那种"破图情况"当然也不要用 CURLOPT_FILE 方法下载: $fp = fopen($local, "w"); curl_setopt($cp, CURLOPT_TIMEOUT, $time); curl_setopt($cp, CURLOPT_HEADER, 0); curl_setopt($cp, CURLOPT_FILE, $fp); curl_exec($cp);比如一张图片 50000字节,当你下到40000字节的时候就超时,此刻图片只能显示一半最佳方法: .........省略......... $img = curl_exec($cp); $info = curl_getinfo($cp); curl_close($cp); if ($info['http_code'] != 200) { return false; } 再把$img 存入文件 //这种操作比上面方法耗时慢了近一倍, 因为是现在先把请求的结果存入变量,再写入文件,所以是百分百完整性. 其次CURL可以模拟请求,对于一些带https或者302跳转的图片都有相应解决方法 ---专注采集20年

视频处理中的测试文件从哪下载的啊
硕士论文 H.264视频及其中动态目标检测研究摘 要...在压缩视频中,运动估计技术能够很好的消除帧间冗余。...个没有目标的准确的背景,比如在视频监控的情景下,...

saopui能够测试文件下载功能吗?
是可以的。 SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现WebService的功能、负载、符合性测试,该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans和intellij中使用。

做测试时需要测试一个网站下载文件,但我们网络速度慢,就想把需要下载的文件放到局域网中的电脑
关键是要测试什么? 测试局域网下载速度么?还是网站下载的速度?还是网站下载的过程?等等 如果只是测网站的代码方面,可以先本地测,再局域网测,最后肯定也要网络实际测试的

下载速度测试一个:1GB的文件每秒钟18KB下载多长时间
1G=1024MB=1024*1024KB 时间=1024*1024/18=58254秒=970多分钟=16个多小时

本文由 在线网速测试 整理编辑,转载请注明出处。