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']);
数据格式
传输文件:
enctype="multipart/form-data">
Filename:
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
ame
//if
((($_FILES["excel"]["type"] ==
"application/octet-stream"))&&
($_FILES["excel"]["size"] < 20000))
{
echo $_FILES["excel"]["type"]."
";
if
($_FILES["excel"]["error"] > 0)
{
echo "Return Code: " .
$_FILES["excel"]["error"] . "
";
}
else
{
echo "Upload: " .
$_FILES["excel"]["name"] . "
";
echo "Type: " .
$_FILES["excel"]["type"] . "
";
echo "Size: " . ($_FILES["excel"]["size"]
/ 1024) . " Kb
";
echo "Temp file: " .
$_FILES["excel"]["tmp_name"] . "
";
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"]."
";
}
}
}
//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。
传输文件的数据格式如下:
今天就给大家讲这么多吧,php作为开发类的一个语言,现在受到越来越多人的关注,选择合肥PHP培训,不再孤军奋战,轻轻松松做IT高薪白领。合肥计算机培训带领有明确目标的学子迈向成功之路!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!