php curl 上传文件代码实例

yipeiwu_com6年前PHP代码库

假设server端上传文件处理脚本upload.php:

复制代码 代码如下:

<?php 
 
print_r($_POST); 
print_r($_FILES); 

1、使用 CURL 默认的方法
复制代码 代码如下:

//如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件   
$file = realpath(mb_convert_encoding('测试图片.JPG','GBK','utf8')); 
 
$file = realpath('temp.jpg'); //要上传的文件   
$fields['f'] = '@'.$file; // 前面加@符表示上传图片  
 
$ch =curl_init(); 
 
 
curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php'); 
 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
 
 
$content = curl_exec($ch); 
 
echo $content; 

2、另类的做法,有时我们需要将动态产生的内容当做文件上传到远程服务器,却又不想在本地服务器中构建临时文件。这样就有了这个另类的写法

复制代码 代码如下:

$contents =<<< 'TEXT' 
这里是文件内容,也可以是图片二进制,图片需要修改上传文件类型 
TEXT; 
 
$varname = 'my';//上传到$_FILES数组中的 key 
$name = '3.txt';//文件名 
$type = 'text/plain';//文件类型 
 
$key = "$varname\"; filename=\"$name\r\nContent-Type: $type\r\n"; 
$fields[$key] = $contents; 
 
 
 
$ch =curl_init(); 
 
 
curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php'); 
 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
 
 
$content = curl_exec($ch); 
 
echo $content; 

相关文章

9个实用的PHP代码片段分享

一.查看邮件是否已被阅读        当你发送邮件时,你肯定很想知道你的邮件是否已被对方查看。下面的代码就能实现记录阅读你...

PHP赋值的内部是如何跑的详解

PHP赋值的内部是如何跑的详解

前言 在PHP中,一个变量被赋值,内部到底经历了怎样的逻辑判断呢? PHP在内核中是通过zval这个结构体来存储变量的,它的定义在Zend/zend.h文件里 struct _zva...

php中随机函数mt_rand()与rand()性能对比分析

本文实例对比分析了php中随机函数mt_rand()与rand()性能问题。分享给大家供大家参考。具体分析如下: 在php中mt_rand()和rand()函数都是可以随机生成一个纯数字...

PHP面向对象程序设计之接口的继承定义与用法详解

本文实例讲述了PHP面向对象程序设计之接口的继承定义与用法。分享给大家供大家参考,具体如下: 在PHP5中,接口是可以继承自另外一个接口的。这样代码的重用更有效了。要注意只有接口和接口之...

php实现三级级联下拉框

这是我在网上查找到的php实现三级级联下拉框的资料,共享个大家,大家一起进步,具体内容如下 index.php: <html> <head> <met...