第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP數(shù)據(jù)URI到文件

PHP數(shù)據(jù)URI到文件

PHP
不負相思意 2019-12-25 16:01:08
我有一個從javascript獲取的數(shù)據(jù)URI,并嘗試通過php保存。我使用以下代碼給出了明顯損壞的圖像文件:  $data = $_POST['logoImage'];  $uri = substr($data,strpos($data,",")+1);  file_put_contents($_POST['logoFilename'], base64_decode($uri));data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs 9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVQYlYWQMW7CUBBE33yITYUUmwbOkBtEcgUlTa7COXIVV5RUkXKC5AxU EdyZVD4kyKxkwIrr9vd0c7Oih aopinLNsF6Qkg2XW4XJ7LGFsAAcTV6lF5/jLdbALA9XDAXYfthFQVx OrmqKYK88/7rbbMFksALieTnzu9wDYTj6f70PKsp2kwAiSvjXNcvkWpAfNZkzWa/5a9yT7fdoX7rrB7hYh2fXo9HdjPYQZu3MIU8bYIlW20y0RUlXG2Kpv/vfwLxhTaSQwWqwhAAAAAElFTkSuQmCC代碼下面是實際的圖像,作為Data-URI。'logoImage'是上面的字符串,而$ uri是字符串減去'image / jpeg; base64,'。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊


快速瀏覽PHP手冊會得出以下內(nèi)容:


如果要保存從Javascript canvas.toDataURL()函數(shù)派生的數(shù)據(jù),則必須將空格轉(zhuǎn)換為加號。如果不這樣做,則解碼的數(shù)據(jù)將被破壞:


<?php

  $encodedData = str_replace(' ','+',$encodedData);

  $decodedData = base64_decode($encodedData);

?>


查看完整回答
反對 回復(fù) 2019-12-25
?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

您的示例中的數(shù)據(jù)URI不是有效的PNG圖片。這將永遠無法工作,并且與代碼無關(guān),與數(shù)據(jù)無關(guān)。


不適用,但可能會引起關(guān)注:


file_put_contents($_POST['logoFilename'], file_get_contents($data));

背后的想法:PHP本身可以讀取數(shù)據(jù)URI(data://)的內(nèi)容,因此您不需要自己對其進行解碼。


請注意,正式數(shù)據(jù)URI方案(參考:“ data” URL方案RFC 2397)//在冒號(“ :”)之后不包含雙斜杠(“ ”)。PHP支持帶或不帶兩個斜杠。


 # RFC 2397 conform

 $binary = file_get_contents($uri);


 # with two slashes

 $uriPhp = 'data://' . substr($uri, 5);

 $binary = file_get_contents($uriPhp);


查看完整回答
反對 回復(fù) 2019-12-25
?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

所有有效的代碼:


$imgData = str_replace(' ','+',$_POST['image']);

$imgData =  substr($imgData,strpos($imgData,",")+1);

$imgData = base64_decode($imgData);

// Path where the image is going to be saved

$filePath = $_SERVER['DOCUMENT_ROOT']. '/ima/temp2.png';

// Write $imgData into the image file

$file = fopen($filePath, 'w');

fwrite($file, $imgData);

fclose($file);


查看完整回答
反對 回復(fù) 2019-12-25
  • 3 回答
  • 0 關(guān)注
  • 522 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號