php文件数据流 php储存数据

php怎么发送和接收流文件?php
/** php 发送流文件
* @paramString$url接收的路径
* @paramString$file 要发送的文件
* @return boolean
*/
function sendStreamFile($url, $file){
if(file_exists($file)){
$opts = array(
'http' = array(
'method' = 'POST',
'header' = 'content-type:application/x-www-form-urlencoded',
'content' = file_get_contents($file)
)
);
$context = stream_context_create($opts);
$response = file_get_contents($url, false, $context);
$ret = json_decode($response, true);
return $ret['success'];
}else{
return false;
}
}
$ret = sendStreamFile('', 'send.txt');
var_dump($ret);
?
?php
/** php 接收流文件
* @paramString$file 接收后保存的文件名
* @return boolean
*/
function receiveStreamFile($receiveFile){
$streamData = https://www.04ip.com/post/isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
if(empty($streamData)){
$streamData = https://www.04ip.com/post/file_get_contents('php://input');
}
if($streamData!=''){
$ret = file_put_contents($receiveFile, $streamData, true);
}else{
$ret = false;
}
return $ret;
}
$receiveFile = 'receive.txt';
$ret = receiveStreamFile($receiveFile);
echo json_encode(array('success'=(bool)$ret));
?
用php如何把图像数据流保存imagegif(resource $image[, string $filename]) 从 image图像以 filename 为文件名创建一个GIF 图像 。image参数是imagecreate() 或imagecreatefrom* 函数的返回值 。
imagejpeg(resource $image[, string $filename]) 从 image图像以 filename 为文件名创建一个JPEG 图像 。
imagepng(resource $image[, string $filename]) 将 GD 图像流(image)以PNG 格式输出到标准输出(通常为浏览器),或者如果用filename 给出了文件名则将其输出到该文件 。
filename 文件保存的路径,如果未设置或为 NULL,将会直接输出原始图象流 。
这几个函数你参考一下,希望对你有帮助 。
PHP curl 模拟表单数据流multipart/form-data上传文件在调用公众号接口".$token."type=".$type;
上传永久素材文件总是返回 "{\"errcode\":41005,\"errmsg\":\"media data missing\"}"
经过多次测试使用下面的方式,可以正常上传
//调用测试
protected static $url;
protected static $delimiter;
protected static $instance;
public function index()
{
static::$delimiter = uniqid();
$basename = Request::instance()-root();
if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {
$basename = dirname($basename);
}
$result=$this-wxAddMaterial($token,$basename.'/upload/images/gnlog.jpg','image');
}
// 新增其他类型永久素材
public function wxAddMaterial($token,$filename='',$type='') {
// 设置请求参数
static::$url = "".$token."type=".$type;
$filePath = str_replace('\\', '/', $filename);
// 发送请求
$imginfo=pathinfo($filePath);
$fields = array(
'media'=file_get_contents(".".$filePath),
'filename'=$imginfo["basename"],
);
$res = $this-putPart( $fields);
// 发送请求
return $res;
}
//推送文件流
public function putPart($param) {
$post_data = https://www.04ip.com/post/static::buildData($param);
$curl = curl_init(static::$url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Content-Type: multipart/form-data; boundary=" . static::$delimiter,
"Content-Length: " . strlen($post_data)
]);
$response = curl_exec($curl);
curl_close($curl);

推荐阅读