
最近做了一个简单的小项目
这算是我学了php一个月以来第一次把自己学到的知识付诸实践,虽然有不少功能都是杜神写的,但是我还是做了一些简单的贡献。
在实现了生成海报的功能之后,接下来还有三个功能等待实现。
由于微信分享和新浪微博的分享已经做过了,并且可以使用,所以我就先做了下载图片的功能。
关于下载图片的功能,其实有多种方式实现。
先将比较复杂的PHP实现的方法。
PHP实现下载方式,基本上是浏览器发送一个请求,请求访问服务器中某个脚本,比如download.php。然后执行该文件的代码实现下载。
如图

而在浏览器运行待下载的文件的时候,必然要把待下载的文件读入内存中,这里通过fopen()函数完成该动作,接下来就是从内存中读取文件,通过fread()函数完成该动作。
首先php 下载图片 最快,我提供一些本人编写的把32bit tga文件读入prgbabuffer的函数文件尺寸保存在 width,height//-----------------------------------------------------------------------// name: loadtgafile( tchar* strpathname, dword** prgbabuffer, long* width, long* height )// desc: 读取32bit tga文件到dword缓冲里,返回其尺寸// time: 2002.06.22 00:36// author: realrender// para:// return:// note: 这段代码来自directx 7.0 sample中的d3dtextr.cpp,我把他提取了出来// 方便使用//-----------------------------------------------------------------------bool loadtgafile( tchar* strpathname, dword** prgbabuffer, long* width, long* height ){file* file = fopen( strpathname, "rb" )。文本文件的结束符ascii码值为1ah(ctrl+z键),可能不带结束符(可通过读取成功而实际读入的字节数为0来判断到文件尾),也可能文件中间插有结束符(可通过一次读取多个字符来取代逐一字符读取的方式,通过读取成功但读入实际字节数为0判断文件结束)。 如果顺利read()会返回实际读到的字节数,最好能将返回值与参数count作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read()被信号中断了读取动作。
比如。。
<form class="J_form_download" method="post" action="download.php">
<input name="url" value="" type="hidden">
</form>
用js可以实现对这么form的控制,当我利用js实现form的提交操作,那么就是寻找并执行这个download.php文件。
这个时候就可以把你想用download.php实现你想要的下载的功能。具体怎么实现的看下面这段代码:
<?php
/**
* 文件下载
*
**/
header("Content-type:text/html;charset=utf-8");
download('web/magento-1.8.1.0.zip', 'magento下载');
function download($file, $down_name){
$suffix = substr($file,strrpos($file,'.')); //获取文件后缀
$down_name = $down_name.$suffix; //新文件名,就是下载后的名字
//判断给定的文件存在与否
if(!file_exists($file)){
die("您要下载的文件已不存在,可能是被删除");
}
$fp = fopen($file,"r");
$file_size = filesize($file);
//下载文件需要用到的头
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length:".$file_size);
header("Content-Disposition: attachment; filename=".$down_name);
$buffer = 1024;
$file_count = 0;
//向浏览器返回数据
while(!feof($fp) && $file_count < $file_size){
$file_con = fread($fp,$buffer);
$file_count += $buffer;
echo $file_con;
}
fclose($fp);
}
?>

几点注意事项:
header("Content-type:text/html;charset=utf-8")的作用:在服务器响应浏览器的请求时,告诉浏览器以编码格式为UTF-8的编码显示该内容
关于file_exists()函数不支持中文路径的问题:因为php函数比较早,不支持中文,所以如果被下载的文件名是中文的话,需要对其进行字符编码转换,否则file_exists()函数不能识别php 下载图片 最快,可以使用iconv()函数进行编码转换
$file_sub_path() 我使用的是绝对路径,执行效率要比相对路径高
Header("Content-type: application/octet-stream")的作用:通过这句代码客户端浏览器就能知道服务端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告诉客户端浏览器返回的文件大小是按照字节进行计算的
Header("Accept-Length:".$file_size)的作用:告诉浏览器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告诉浏览器返回的文件的名称

以上四个Header()是必需的
fclose($fp)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区
利用js实现图片下载的功能
简单的参考
<head runat="server">
<title>文件下载</title>
</head>
<script type="text/javascript" >
// 使用JS实现下载.jpg、.doc、.txt、.rar、.zip等文件的方法(参数 imgOrURL 为需要下载的图片的URL地址)
// 使用该方法实现下载压缩文件时会有网页错误信息提示
// .doc、.rar、.zip 文件可以直接通过文件地址下载,
// 如:<a href="../Images/test.doc" >点击下载文件</a> <a href="../Images/test.zip" >点击下载文件</a>
function saveImageAs(imgOrURL) {
if (typeof imgOrURL == 'object')
imgOrURL = imgOrURL.src;
window.win = open (imgOrURL);
setTimeout('win.document.execCommand("SaveAs")', 500);
}
// 使用JS实现下载.txt、.doc、.txt、.rar、.zip等文件的方法(参数 fileURL 为需要下载的图片的URL地址)
// 使用该方法实现下载压缩文件时不会有网页错误信息,但是不能使用该方法下载.jpg图片文件
// .doc、.rar、.zip 文件可以直接通过文件地址下载,
// 如:<a href="../Images/test.doc" >点击下载文件</a> <a href="../Images/test.zip" >点击下载文件</a>
function savetxt(fileURL){
var fileURL=window.open (fileURL,"_blank","height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
fileURL.document.execCommand("SaveAs");
fileURL.window.close();
fileURL.close();
}
// 功能类似savetxt方法,但是下载时初始文件名为code.txt,而不是跟目标文件名相同
function svcode(obj) {
var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.execCommand('saveas','','code.txt');
winname.close();
}
</script>
<body>
<div>
<br />
<a href="javascript: void 0" οnclick="savetxt('../Images/test.txt'); return false">点击下载文件</a>
<br /><br />
<a href="javascript:savetxt('../Images/test.txt')" >点击下载文件</a>
<br /><br />
<!-- .doc、.rar、.zip 文件可以直接通过文件所在地址下载 -->
<a href="../Images/test.doc" >点击下载文件</a>
<br /><br />
<a href="../Images/test.zip" >点击下载文件</a>
</div>
</body>
html5
爬虫没有办法识别图片,但爬虫却可以抓取图片的alt属性,所以我们要确保网站内图片的alt属性都和网站主题尽可能相关,添加alt标签,来说明图片的意思,这点尤为重要。jpg图片浏览器v1.3.1 官方最新版中文更新时间:3-24 jpg图片查看器是一款非常好用的jpg图片浏览软件,支持将图片进行压缩和拉伸,支持图片的查找和导入,导入速度快,浏览体验极佳,喜爱的朋友赶快到绿色资源网下载使用吧。e影浏览器具有的主要功能:网络营销宣传、高速文件查找器、安全过滤弹出窗口、鼠标手势、随意拖放、多标签多行标签、隐藏浮动元素功能(可过滤浮动广告)、代理上网、智能填表自动填表、智能自动操作、本地图片浏览、本地自动播放、媒体播放视频播放以及人性化的用户操作体验等功能。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-115358-1.html
骗来