blob取回來會是一個[字符串類型]的字節串,用strlen獲得字節數.
10年積累的成都網站建設、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有涇川免費網站建設讓你可以放心的選擇與我們合作。
strlen()函數是沿用php2以來命名的函數,作用并不是統計字符數,而僅統計字節byte數。
即使php7.x仍沿用strlen數字節。
Warning: Cannot modify header information - headers already sent by (output started at F:\www\reg\down-img.php:2) in F:\www\reg\down-img.php on line 28
這個是常見的一種錯誤 一般使用header() 函數的時候
前面不可以有 任何輸出, 有時候不小心 ?php 上面 有空格或者 回車都不可以
要顯示圖片Header( "Content-type: image/JPEG"); 是必須要有的
在調用公眾號接口".$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 = 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);
return $response;
}
//編譯請求頭格式和數據流
private static function buildData($param){
$data = '';
$eol = "\r\n";
$upload = $param['media'];
unset($param['media']);
foreach ($param as $name = $content) {
? ? $data .= "--" . static::$delimiter . "\r\n"
? ? ? ? . 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"
? ? ? ? . $content . "\r\n";
}
$data .= "--" . static::$delimiter . $eol
? ? . 'Content-Disposition: form-data; name="media"; filename="' . $param['filename'] . '"' . "\r\n"
? ? . 'Content-Type:application/octet-stream'."\r\n\r\n";
$data .= $upload . "\r\n";
$data .= "--" . static::$delimiter . "--\r\n";
return $data;
}
根據自己的實際情況稍作修改
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.數據流 php輸出文件流
分享路徑:http://vcdvsql.cn/article34/hejhse.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、搜索引擎優化、網站內鏈、企業建站、品牌網站建設、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯