php <5.5 curl post and file 请求

/**
     * 跨域post请求(适配文件上传)
     * @param $url 上传地址
     * @param $post_data 请求数据
     */
     protected function sendPost ($url,$post_data)
    {
        /*$url = "http://10.0.0.87/fileAccept.php";
        $post_data = array(
            "dir" => "wechat",
            //要上传的本地文件地址
            "upload" => ‘@/alidata/www/15c56d316166c1fccfb036a9337d0caeChrysanthemum.jpg‘
        );*/
        $ch = curl_init();
        curl_setopt($ch , CURLOPT_URL , $url);
        curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch , CURLOPT_POST, 1);
        curl_setopt($ch , CURLOPT_POSTFIELDS, $post_data);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

  接收:

<?php 

/**
* 跨域文件接收
*/
class fileAccept
{
	protected $dis = ‘/alidata/www/cdnappota/‘;
	protected $ur = ‘http://cdn.multiopen.cn/‘;

	// Function to get the client IP address
	function get_client_ip()
	{
	    $ipaddress = ‘‘;
	    if (getenv(‘HTTP_CLIENT_IP‘))
	        $ipaddress = getenv(‘HTTP_CLIENT_IP‘);
	    else if(getenv(‘HTTP_X_FORWARDED_FOR‘))
	        $ipaddress = getenv(‘HTTP_X_FORWARDED_FOR‘);
	    else if(getenv(‘HTTP_X_FORWARDED‘))
	        $ipaddress = getenv(‘HTTP_X_FORWARDED‘);
	    else if(getenv(‘HTTP_FORWARDED_FOR‘))
	        $ipaddress = getenv(‘HTTP_FORWARDED_FOR‘);
	    else if(getenv(‘HTTP_FORWARDED‘))
	        $ipaddress = getenv(‘HTTP_FORWARDED‘);
	    else if(getenv(‘REMOTE_ADDR‘))
	        $ipaddress = getenv(‘REMOTE_ADDR‘);
	    else
	        $ipaddress = ‘UNKNOWN‘;
	    return $ipaddress;
	}

	function uploadFile($files,$dir=‘images‘)
	{

		if ($files) {
		 	$time = time();
	        $newname = md5(uniqid().$time);
	        if (!file_exists($this->dis.$dir.‘/‘)) {
	        	mkdir($this->dis.$dir.‘‘);
	        }
	       	$res =  move_uploaded_file($files[‘tmp_name‘],$this->dis.$dir.‘/‘.$newname.$files[‘name‘]);
			if ($res) {
				echo json_encode([‘errno‘=>0,‘data‘=>[$this->ur.$dir.‘/‘.$newname.$files[‘name‘]]]);
			}else{
				echo json_encode([‘errno‘=>1]);
			}

		}
	}

}

$files = $_FILES[‘upload‘];
$dir = $_POST[‘dir‘];

$acc = new fileAccept();
$ip = $acc->get_client_ip();
$whiteIp = [‘10.0.0.117‘];
if (in_array($ip,$whiteIp)) {
	echo $acc->uploadFile($files,$dir);
}

  

时间: 2024-11-06 11:22:15

php <5.5 curl post and file 请求的相关文章

PHP &lt;&lt;EOF EOF的使用方法

PHP <<EOF EOF的使用方法 <?php     $name = '浅水游';     print <<<EOT             <html>             <head>             <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />             <t

stream.fail() eof() EOF

ifstream infile("student.dat"); while((c=infile.get())!=EOF){}    //EOF的值是-1 但在 #include<iostream>using namespace std;int main(){ int c; while((c=cin.get()) !=EOF) cout<<c<<endl;} 中,输入-1 却不会终止    因为输入-1,程序是按照 - 和 1 两个字符接收的.get(

(转)PHP EOF(heredoc)的使用方法

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术.但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子. 如下: <?php $name = '浅水游'; print <<<EOT <html> <head> <meta http-equiv="Content-Type" co

Linux CAT与ECHO命令详解 &lt;&lt;EOF EOF

Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从键盘创建一个文件. $ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件. $cat file1 file2 > file cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName 说明:

(转)C语言中的EOF和feof()

今天遇到了feof()判断文件结束多输出一行的问题,在网上看到一篇写得比较好的文章,转过来(誊写一遍)加深印象.原文地址:http://blog.csdn.net/flyyyri/article/details/5084981 1.EOF是标准库中的宏定义,#define EOF -1,在32位系统中是int型数据,表示为0xFFFFFFFF,EOF 不是一个字符,也不是文件中实际存在的内容.EOF不但能表示读文件到了结尾这一状态,它还能表示 I/O 操作中的读.写错误(可以用 ferror()

php 的定界符 &lt;&lt;&lt;eof

PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法 --按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误.如果是一两处还可以容忍,但是要是一个完整的 html文本或者是一个200行的js我想是谁都会崩溃的.这就是PHP为什么要引入一个定界符的原因--至少一大部分原因是这样的. 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西:2.在PHP定界符

php的定界符&lt;&lt;&lt;eof的问题

在php的编程过程中难免会遇到输出大段的html和javascript脚本的情况,可都放在具体的地方的时候,路由不好处理,而且比较浪费时间 如果按照传统的输出方法,按照字符串输出的话,需要大量的转义字符串对字符串中的特殊字符进行转义 麻烦又费时间,还容易出现语法错误 php定界符的作用就是划分出来一片区域,将其中的的格式和内容按照原样输出. php定界符中的任何特殊字符都不需要转义 php.定界符中的变量会被正常的用其值来替换 <<<eof . eof; 如果使用的过程中出现错误, 检查

理解feof与EOF

feof(feof msdn) feof用于判断文件结尾.头文件<cstdio>.使用方法是feof(fp),fp为指向需要判断的文件的指针.如果不到文件结尾,返回0值:如果是文件结尾,返回非0. 使用feof判断文件结尾一定要非常注意以下一点: 假设文件包含10字节,并且你读取了十字节,调用feof函数,函数返回值均为0,这是因为尽管文件指针这时已经指向文件尾了,但是你没有试图越过文件尾读取数据,只有当你尝试了读取第十一个字节时,调用feof,函数才会返回0. 因此,使用feof常用的逻辑结

php 的定界符 &lt;&lt;&lt;eof 的问题

PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法 ——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误.如果是一两处还可以容忍,但是要是一个完整的 html文本或者是一个200行的js我想是谁都会崩溃的.这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的.1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西:2.在PHP定界符中

PHP定界符eof 的使用

PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法 --按字符串输出的话, 肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误.如果是一两处还可以容忍, 但是要是一个完整的 html文本或者是一个100行的js我想是谁都会崩溃的.这就是PHP为什么要引入一个定界符的原因--至少一大部分原因是这样的. 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西:2.在PHP定