php采用curl实现POST数据与文件上传与接收
来源:互联网 发布:oracle数据库工程师 编辑:程序博客网 时间:2024/06/05 10:22
php的curl是一个强大的网络库,可以用于GET与POST数据的传输
相对来说,GET格式简单,但是安全性略差,且携带数据有限,下面主要介绍POST数据的传输。
普通data:
<?$url = 'http://10.0.1.123/imessage/login.php';$ch=curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");$json_string = json_encode($data);curl_setopt($ch, CURLOPT_POSTFIELDS, array('data'=>$json_string));$response = curl_exec($ch);curl_close($ch);echo $response;?>
接受普通数据:
$json_data = json_decode($_POST['data']);
数据格式
传输文件:
<html><body><form action="upload_file.php" method="post"enctype="multipart/form-data"><label for="file">Filename:</label><input type="file" name="file" id="file" /> <br /><input type="submit" name="submit" value="Submit" /></form></body></html>
or
<?$post = array("excel"=>"@example.xls",//这里是要上传的文件,key与后台处理文件对应);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "http://localhost/phpexcel/upsvr.php");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_POSTFIELDS,$post);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_VERBOSE, 0);$a=curl_exec($ch);echo $a;curl_close($ch);?>
接收文件:
<?//$_FILES["excel"]["tmp_name"] is the tmp file name//$_FILES['excel'][name] is the remote file name//if ((($_FILES["excel"]["type"] == "application/octet-stream"))&& ($_FILES["excel"]["size"] < 20000)){ echo $_FILES["excel"]["type"]."<br />"; if ($_FILES["excel"]["error"] > 0) { echo "Return Code: " . $_FILES["excel"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["excel"]["name"] . "<br />"; echo "Type: " . $_FILES["excel"]["type"] . "<br />"; echo "Size: " . ($_FILES["excel"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["excel"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["excel"]["name"])) { echo $_FILES["excel"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["excel"]["tmp_name"], "upload/" . $_FILES["excel"]["name"]); echo "Stored in: " . "upload/" . $_FILES["excel"]["name"]."<br />"; } }}//else{ echo "Invalid file";}?>
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
- $_FILES["file"]["name"] - 被上传文件的名称
- $_FILES["file"]["type"] - 被上传文件的类型
- $_FILES["file"]["size"] - 被上传文件的大小,以字节计
- $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
- $_FILES["file"]["error"] - 由文件上传导致的错误代码
- 以下为不同代码代表的意思:0; 文件上传成功。1; 超过了文件大小php.ini中即系统设定的大小。2; 超过了文件大小MAX_FILE_SIZE 选项指定的值。3; 文件只有部分被上传。4; 没有文件被上传。5; 上传文件大小为0
需要注意的是:move_uploader_file可能失败,这是因为存放的文件夹权限不够,改为wx(读r 4,写2,执行1),chmod 333 test 即可,需要读取的话,则要777。
传输文件的数据格式如下:
1 0
- php采用curl实现POST数据与文件上传与接收
- php curl编码类型设置、文件上传与接收数据
- PHP CURL 模拟POST请求 提交数据或上传文件
- PHP curl 模拟POST 上传文件
- php curl post 上传文件流
- php curl 实现文件上传
- PHP Curl post上传图片版本不兼容而引起服务器端接收不到图片问题/考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
- php curl post 短信接口那边接收不到数据
- php-curl(模拟post,设置header,接收json数据)
- PHP POST CURL上传图片
- php curl 模拟post上传文件应用实例
- 利用HTTP协议实现Android文件上传至WEB服务器,采用PHP接收文件(参考网上自己实现)
- java web中servlet实现post方法上传多文件数据接收
- 使用cURL POST上传文件
- php curl 上传文件
- php curl上传文件
- PHP curl 上传文件
- PHP Curl 上传文件
- MySQL性能优化-关于索引
- 腾迅马拉松(〇)解题报告
- I帧、P帧和B帧的特点
- server2003 必要的系统优化和安全设置
- SIGCOMM12论文简要选读
- php采用curl实现POST数据与文件上传与接收
- 程序中我们所遇到的内存问题
- 机器学习算法与Python实践之(六)二分k均值聚类
- 编写和MQTT服务器通信的Android客户端程序(二)
- 看何炅快乐的100个理由
- 由浅入深探究mysql索引结构原理、性能分析与优化
- GPIO的描述和配置
- 2013
- IOS 中使用 POST请求与GET请求的区别