文档章节

CURL远程服务上传文件

webphp
 webphp
发布于 2017/07/26 11:28
字数 284
阅读 11
收藏 0
在工作中经常会遇到把附件服务器独立出来,在web站点上传的附件上传到指定的服务器上,就用到了跨服务器远程上传附件,这里应用了php中的curl来上传附件 当然这里还应该有一些安全机制处理,就不在这里描述, web上传页面
$file_path = ."/Public/lecheng/images/home/1_07.jpg";
$url = "http://curljs.com/request_file.php";//第三方服务器接收地址
$data['Filedata'] = "@".$filepath;//必须为@绝对完整路径
$data['dirname'] = $dirname;
$state = postCurl($url, $data) ;
return $state;

function postCurl($url,$data){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_URL,$url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);//把CRUL获取的内容赋值到变量,不直接输出的页面
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//跟随$url重定向的页面
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	ob_start();
	curl_exec($ch);
	$result = ob_get_contents() ;
	ob_end_clean();
	return $result;
}
request_file.php
if($_FILES){
	$filename = $_FILES['Filedata']['name'];
	$tmpname = $_FILES['Filedata']['tmp_name'];
	$filedir = $_POST['dirname'];
	
	$dir_path = dirname(__FILE__).'/upload/'.$filedir.'/';
	if ( !is_dir( $dir_path) ){
		mkdirss( $dir_path );
	}
	$file_path = $dir_path . $filename;
	if(move_uploaded_file($tmpname,$file_path)){
		$msg = json_encode('上传成功');
		echo $msg;
	}else{
		$data = json_encode($_FILES);
		echo $data;
	}
}

/**
 * 创建目录
 * @param unknown_type $dirs
 * @param unknown_type $mode
 * @return boolean
 */
function mkdirss($dirs,$mode=0777) {
	if(!is_dir($dirs)){
		mkdirss(dirname($dirs), $mode);
		return @mkdir($dirs, $mode);
	}
	return true;
}
?>
 

© 著作权归作者所有

共有 人打赏支持
webphp
粉丝 1
博文 92
码字总数 92070
作品 0
海淀
程序员
linux常见上传下载,以及跨机器文件传输命令总结。

linux常见上传下载,以及跨机器文件传输命令总结。 近来项目完成了,搭建测试环境时,需要下载一些软件,还有由于堡垒机的存在,多个服务器之间文件的相互拷贝,十分麻烦,特来总结了一下,加...

奇葩界张三
2017/04/26
0
0
lnmp架构下php安全配置分享

以往的lamp网站向着lnmp发展, 笔者工作环境使用lnmp多年, 在这里很高兴和大家分享一下多年的lnmp网站的php安全配置,至于lamp安全后续与大家分享,其实内容上八成相同,这边着重讲php安全配置...

小运
2013/08/26
0
23
模拟php curl向远程服务器上传文件

test.php: <?php header('content-type:text/html;charset=utf8'); $ch = curl_init(); //加@符号curl就会把它当成是文件上传处理 $data = array('img'=>'@'. dirname(FILE).'/img/1.jpg');......

Adam-Lee
2012/04/20
0
2
curl获取网站的响应时间

curl获取网站的响应时间 0.问题 总有人反馈说打开某个页面比较慢, 但是他们并不清楚到底慢在哪里。 同样的问题, 在我们访问外部业务的接口时, 往往也是感觉很慢, 但就是不清楚慢在哪里。...

双鱼座小龙
2017/05/14
0
0
《CURL技术知识教程》系列技术教程整理

《CURL技术知识教程》系列技术教程整理 有时间会不断更新,大家有什么好的推荐的可以在下面回复,我会酌情收录 1PHP采集相关教程之一 CURL函数库 2php中通过curl模拟登陆discuz论坛的实现代码...

开元中国2015
2015/05/07
470
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

困扰当前数据中心管理的三大难题

导读 当企业发展到一定程度,或者之前的机房不能满足现在的数据中心使用时,企业会对数据中心进行迁移。那么在数据中心进行迁移的时候会遇到哪些风险呢?针对这些风险我们应该做出怎样的措施来...

问题终结者
4分钟前
0
0
设计模式:工厂方法模式(工厂模式)

工厂方法模式才是真正的工厂模式,前面讲到的静态工厂模式实际上不能说是一种真正意义上的设计模式,只是一种变成习惯。 工厂方法的类图: 这里面涉及到四个种类: 1、抽象产品: Product 2、...

京一
21分钟前
0
0
区块链和数据库,技术到底有何区别?

关于数据库和区块链,总会有很多的困惑。区块链其实是一种数据库,因为他是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。但是,区块链是数据库,数据库可不...

HiBlock
28分钟前
0
0
react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
35分钟前
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
43分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部