一、使用curlDownload 采集远程文件
/** * 采集远程文件 * @access public * @param string $remote 远程文件名 * @param string $local 本地保存文件名 * @return mixed */static public function curlDownload($remote,$local) {
$cp = curl_init($remote)
$fp = fopen($local,"w") curl_setopt($cp, CURLOPT_FILE, $fp) curl_setopt($cp, CURLOPT_HEADER, 0) curl_exec($cp) curl_close($cp) fclose($fp)
}
调用:
$Http = new \Org\Net\Http()
$Http::curlDownload("m/b64543a98226cffc9153e5b3bb014a90f603eab2.jpg", "./Public/file/1.jpg")
二、使用download 下载文件
/** * 下载文件 * 可以指定下载显示的文件名,并自动发送相应的Header信息 * 如果指定了content参数,则下载该参数的内容 * @static * @access public * @param string $filename 下载文件名 * @param string $showname 下载显示的文件名 * @param string $content 下载的内容 * @param integer $expire 下载内容浏览器缓存时间 * @return void */ static public function download ($filename, $showname='',$content='',$expire=180) { if(is_file($filename)) {
$length = filesize($filename)
}elseif(is_file(UPLOAD_PATH.$filename)) { $filename = UPLOAD_PATH.$filename
$length = filesize($filename)
}elseif($content != '') {
$length = strlen($content)
}else { E($filename.L('下载文件不存在!'))
} if(empty($showname)) { $showname = $filename
} $showname = basename($showname)if(!empty($filename)) {
$finfo = new \finfo(FILEINFO_MIME)
$type = $finfo->file($filename)
}else{
$type = "application/octet-stream"
} //发送Http Header信息 开始下载 header("Pragma: public") header("Cache-control: max-age=".$expire) //header('Cache-Control: no-store, no-cache, must-revalidate') header("Expires: " . gmdate("D, d M Y H:i:s",time()+$expire) . "GMT") header("Last-Modified: " . gmdate("D, d M Y H:i:s",time()) . "GMT") header("Content-Disposition: attachmentfilename=".$showname) header("Content-Length: ".$length) header("Content-type: ".$type) header('Content-Encoding: none') header("Content-Transfer-Encoding: binary" ) if($content == '' ) { readfile($filename)
}else { echo($content)
} exit()
}
调用前,首先要确定有没有开启php_fileinfo扩展,没有的话,则会报错。。
wampserver开启方式:
选择php_fileinfo就行了
调用:
$Http = new \Org\Net\Http()$filename="Public/file/test.doc"
$showname="test.doc"
$content = "this" // 表示下载的文件内容只有this$Http::download($filename, $showname, $content)
谢谢关注~
因为浏览器无法解析php造成的,这时浏览器只能把php网页当作一个文件,因此就会d出窗口提示下载php网页。可能是你电脑本身的问题,关闭所有浏览器,在运行里输入;点开始、运行,输入以下命令行, 然后按确定:
regsvr32 msxml3.dll
回车,如果出现成功的对话框d出。就可以了。还是不行分别输入以下命令试试。
regsvr32 shell32.dll
regsvr32 actxprxy.dll
regsvr32 shdocvw.dll
regsvr32 urlmon.dll
regsvr32 msjava.dll
regsvr32 browseui.dll
regsvr32 oleaut32.dll
regsvr32 mshtml.dll
还有一种可能就是你服务器配置出错了。自己配置的,测试下能不能执行php文件,如果不能执行,请修改相关设置,如果是idc服务商,请联系他们解决。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)