我一直試圖在過去兩天使用不同的方法將base64字符串轉換爲圖像文件,但每次輸出文件不顯示圖像(它顯示大小和一些編碼數據)。將Base64圖像轉換爲文件返回無效圖像/數據
說明: 1.瀏覽器將文件解釋爲文件而不是圖像MIME,但我敢肯定,這不是問題,因爲我試圖下載文件localy,它是相同的結果。 2.我嘗試將在線工具的輸出結果作爲codebeautify.org/base64-to-image-converter進行比較,因爲看起來圖像文件中的數據與我的數據不同。 3.目錄和文件有775組的權限和Apache有CHOWN
Base64編碼字符串在這裏:https://dpaste.de/gP7D/raw
方法A:
list($type, $profile_image) = explode(';', $profile_image);
list(,$extension) = explode('/',$type);
list(,$profile_image) = explode(',', $profile_image);
if($extension == 'jpeg'){$extension = "jpg";}
$filePath = '../uploads/profile_images/'.$uname.'.'.$extension; // using uname instead of unique id to not expose the uqniue key/session
$profile_image = base64_decode($profile_image);
file_put_contents($filePath, $profile_image);
方法B:
list($type, $profile_image) = explode(';', $profile_image);
list(,$extension) = explode('/',$type);
list(,$profile_image) = explode(',', $profile_image);
$filePath = '../uploads/profile_images/'.$uname.'.'.$extension;
$ifp = fopen($filePath, 'wb');
fwrite($ifp, base64_decode($profile_image));
fclose($ifp);
我是什麼做錯了?
更新: 顯然,Apache/php.ini的最大max_input_vars是5000,而我的base64字符串要高得多。這篇文章可以被標記爲已解決。
如果上述文章中顯示的方法不適合我並在此線程中聲明,它是如何重複的? – mele
你是對的。你可以分享其他代碼的要點嗎? –
其獨立功能。 $ profile_image存儲base64字符串 – mele