批量下载文件一般使用循环的方式,逐一执行下载。但在带宽与服务器性能允许的情况下,使用多进程进行下载可以大大提高下载的效率。本文介绍php利用curl的多进程请求方法,实现多进程同时下载文件。
原理:使用curl的批处理方法,开启多进程,实现批量下载文件。
主要方法:
curl_multi_init
返回一个新cURL批处理句柄
curl_multi_add_handle
向curl批处理会话中添加单独的curl句柄
curl_multi_exec
运行当前 cURL 句柄的子连接
curl_multi_getcontent
如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流
curl_multi_remove_handle
移除curl批处理句柄资源中的某个句柄资源
cu...
这里面也介绍了一些方法,BT的只要封闭对应的端口就可以了。或者对用户进行限速。 目前国内的小型局域网主要有两种接入方式,一种为ADSL或者VDSL接入,另一种为直接光纤接入。对于以上各种接入方式,客户一般使用固定IP地址、自动获得IP地址和PPPOE三种方式的应用。尽管我们的TL-R400+路由器也提供了Dynamic IP Address with Road Runner Session Management和PPTP方式,但是这两种应用很少使用。因此我们就目前使用较多的这三种方式进行简单的配置说明,以方便您的使用。 一、 准备工作: 不管哪种接入方式,您都需要先与TL-R400+建立连接,登录它的Web配置界面。 1、 一根直通线连接TL-R400+的一个普...
一般无论网站还是其他系统都会用到文件的上传和下载,对于文件的上传前面已经介绍过了,在本文中将详细介绍一下文件的下载实现以及经常碰到的问题,本文代码已经过调试,可以正常使用: 文件的下载一般采用的有两种方式:通过流或利用jspsmartupload.jar下载。 一.采用数据流下载: 第一个页面:(存在“下载”按钮的页面) function doDownload(filePath,disName) { var utl="download.jsp?filePath="+filePath+"&disName="+disName; document.all.opForm.action=url; // document.all.opForm.target="_blank"; document.all.opForm.submit(); } <form name="opForm" meth...
一般无论网站还是其他系统都会用到文件的上传和下载,对于文件的上传前面已经介绍过了,在本文中将详细介绍一下文件的下载实现以及经常碰到的问题,本文代码已经过调试,可以正常使用:
文件的下载一般采用的有两种方式:通过流或利用jspsmartupload.jar下载。
一.采用数据流下载:
第一个页面:(存在“下载”按钮的页面)
function doDownload(filePath,disName) {
var utl="download.jsp?filePath="+filePath+"&disName="+disName;
document.all.opForm.action=url;
// document.all.opF...
你一定会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 "Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:
$file_name = "info_check.exe";
$file_dir = "/public/www/download/";
if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
echo "文件找不到...
下载文件的方法
目的:保护下载文件,防止被非注册用户下载。
1.判断是否是注册用户
2.如果是注册用户,下载文件。
不能使用redirect的方法:
echo "<script>window.location='".$download_addr."';</script>";
使用此方式,用户可以从地址栏看到下载文件的地址,则有可能直接使用该地址下载而绕过注册用户的限制。
在网上找到的一种方法,如下:
在server 上 的web发布目录之外建立下载文件夹,并把需要下载的文件放入该文件夹。
php程序中采用流方式下载文件:
header ("Content-Disposition:attachment;filename=$your_download_filename");
header ("Content-Length:"...
通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家都会。那么用Content-Disposition设置下载的文件名,这个也有不少人知道吧。基本上,下载程序都是这么写的:
header('Content-Disposition: attachment; filename=' . $filename);print "Hello!";?>
这样用浏览器打开之后,就可以下载document.txt。
但是,如果$filename是UTF-8编码的,有些浏览器就无法正常处理了。比如把上面那个程序稍稍改一下:
header('Content-Disposition: attachment; filename=' . $filename);print "Hello!";?>
把程序保存成UTF-8编码再访问,...
随着Internet技术的发展和跨平台需求的日益增加,Web Services的应用越来越广,我们不但需要通过Web Services传递字符串信息,而且需要传递二进制文件信息。下面,我们就分别介绍如何通过Web Services从服务器下载文件到客户端和从客户端通过Web Services上载文件到服务器。 一:通过Web Services显示和下载文件 我们这里建立的Web Services的名称为GetBinaryFile,提供两个公共方法:分别是GetImage()和GetImageType(),前者返回二进制文件字节数组,后者返回文件类型,其中,GetImage()方法有一个参数,用来在客户端选择要显示或下载的文件名字。这里我们所显示和下载的文件可以不在虚拟目录下,采用这个方法的好处是:...
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件、下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。 一、上传文件 原理就不介绍了,大家直接看代码吧 /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param path FTP服务器保存目录 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(String url,int port,String us...
<?php /* 下载远程文件 */ $file_name = "1.exe"; $file_dir = "http://192.168.1.90/test/"; $file = @ fopen($file_dir . $file_name,"r"); if (!$file) { echo "文件找不到"; } else { Header("Content-type: application/octet-stream"); Header("Content-Disposition: attachment; filename=" . $file_name); while (!feof ($file)) { echo fread($file,5000); } fclose ($file); } ?> 下载图片到本地并且自动命名 function GetImg($url,$filename="") { if($url==""):return false;endif; if($filename=="") { $ext=strrchr($url...
如果只是普通的文件下载,完全没有必要用到php,用个<A href='http://xx.xx.com/xx.tar'></a>就可以,但是有的时候为让文件保密,只能给一部分人下载,显然不能够把链节告诉别人,如果是这样哪就起不到保密的效果。 下面这个函数就是一个用php写的文件下载的函数,它是把文件一段一段地读出来,再传送给客户端. function download($file_dir,$file_name) //参数说明: //file_dir:文件所在目录 //file_name:文件名 { $file_dir = chop($file_dir);//去掉路径中多余的空格 //得出要下载的文件的路径 if($file_dir != '') { $file_path = $file_dir; if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/') $file_path ....
通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家都会。那么用Content-Disposition设置下载的文件名,这个也有不少人知道吧。基本上,下载程序都是这么写的:<?php$filename = “document.txt”;header(’Content-Type: application/octet-stream’);header(’Content-Disposition: attachment; filename=’ . $filename);print “Hello!”;?>这样用浏览器打开之后,就可以下载document.txt。但是,如果$filename是UTF-8编码的,有些浏览器就无法正常处理了。比如把上面那个程序稍稍改一下:<?php$filename = “中文 文...
在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里。而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法:1、设置你的服务器的iis,给doc等后缀名做映射2、在向客户端发送时设置其contenttype下面详细说明方法2 以下是ASP代码:【复制】 <%Response.Buffer = trueResponse.Cleardim urlDim fso,fl,flsizedim DnameDim objStream,ContentType,flName,isre,url1'*********************************************调用时传入的下载文件名Dname=trim(request("n"))'******************************************************************If...