Ajax LaravelやPHPでファイル保存する時Base64とかでよく忘れちゃうこと
こんちわ〜
久しぶりにプログラム書いてると、久しぶりじゃなくても
よく忘れちゃうbase64の保存方法
Ajaxで非同期通信してて、Laravel側(PHP)にファイルデータ渡して
保存してるけど、保存したファイルが開けません問題
Storage::put('ファイル名', $data); // PHPプレーンに書くなら file_put_contents('ファイル名', base64_decode($data));
作ったファイルをダウンロードして、見てみると
ファイルは開けません!って怒られる
あれれ?って思って
あ〜そうだった。base64_decodeしてねぇや。
Storage::put('ファイル名', base64_decode($data)); // PHPプレーンに書くなら file_put_contents('ファイル名', base64_decode($data));
ダウンロードして・・・
ファイルは開けまてん!!
あれぇぇえぇ〜?
ってなること良くあるある。
送信したファイルについてる下の呪文を取り除くのよく忘れる。
data:application/pdf;base64,
data:image/png;base64,
ってことで、よく忘れるのはこのファイルの先頭についてる呪文を削除してから
base64_decodeして保存しないとダメってことですよね。
ちゅーことで〜
今回はPDFとして〜
$str_rep = 'data:application/pdf;base64,'; $data = base64_decode(str_replace($str_rep, '', $image_data)); Storage::put($file_name.'.pdf', $data);
ふぅ〜無事ダウンロードして開けました。
まじで、久々に書いてたら忘れること多いなぁ・・・・
関連記事はこちら
-
CentOS Stream9 LAMP構築から色々含めて
-
Dockerを使って、とりあえずLaravel~MySQLまで使えるようにしよう(構築 前編)
-
LaravelでNamespace declaration statement has to be
- 2021-07-05
- #Laravel
- #エラー
- #Namespace
- #凡ミス
-
LaravelでQRコードを生成、作成する
- 2021-02-08
- #Laravel5.7
- #QRコード
- #生成
- #作成
- #PHP
-
Laravelでルートは合ってるのに、Not Foundが出る解決方法
-
Laravelで簡単にバックアップしてCronで別サーバーへFTP転送までを自動化してみた
-
PHPを5.3から5.4にアップデートしたらMySQLが接続できなくなった時の対処
-
空の配列を取り除く?~「array_filter」と「array_values」を組み合わせる~
-
jQueryで要素を追加した時の挙動と反応と対処
-
Laravel クエリビルダ インクリメント処理