PHPでスマホ(iPhone / Android)に画像をダウンロードさせる方法とダウンロード後の保存場所について
PHPで作ったシステムにスマホ(iPhone / Android)でアクセスし何らかのボタンをクリックした際に画像をダウンロードさせたい。PCだと特に問題無いんだけど、スマホ向けでこのようなシステムを組んだことが無かった。また、ダウンロード後にどこにファイルが保存されるのかも不明なのでその辺りをメモ。
やりたいこと
- PHPでスマホ(iPhone / Android)に画像をダウンロードさせたい
- iPhoneはSafari / AndroidはGoogle Chromeのみ動作対象(その他環境の場合は動作対象外とする)
- どのフォルダもしくはアプリに画像が保存されるのか知りたい
ソースコード
<?php
$file = 'test.jpg';
header('Content-Type: ' . mime_content_type($file));
header('Content-Disposition:attachment;filename="' . $file . '"');
header('Content-Length: '.filesize($file));
echo file_get_contents($file);
exit;
ダウンロード用のソースコードはPC向けと特に変わらず。
保存場所
iPhone
以下「ファイル」アプリに保存される。
https://apps.apple.com/jp/app/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB/id1232058109
Android
以下「Files」アプリに保存される。
https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.files&hl=ja&gl=US
AndroidはOSのバージョンや標準アプリによっては異なるかもしれない(iPhoneメインなのでこの辺は不確か)。
所感
PCと違いスマホだとセキュリティ面がややこしそうで、画像のダウンロードとかも色々面倒なのかと思いきや普通に実装できて驚いた。
特にiPhoneは画像長押し等からメニュー的なものを開いて共有→何らかのアプリに送るような流れになるかと思っていた。
スマホでも画像ダウンロードは問題無いという点と、保存される場所(アプリ)について覚えておく。
関連記事
-
-
画像をアップロードすると複数サムネイルを生成する方法
フォームで画像をアップロードすると、予め定めておいた大中小のサイズでサムネイル画 ...
-
-
「slick」でブラウザ幅がPCの場合はスライダーを表示し、スマホ幅の場合はスライダー無しにする方法
slickプラグインで画像スライダーを設置しているページがあり、PCのブラウザ幅 ...
-
-
PHPにて「ImageHash」ライブラリを使用し画像の類似度を算出する方法
以前にPHPの「image-comparator」ライブラリで画像の類似度を算出 ...
-
-
バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法
あるサイトのコーディングデータを貰った際に「lazysizes」というJavaS ...
-
-
PHPで画像のフォーマット(拡張子)の変換
画像のアップロードでjpg/png/gif形式を受け付けつつ、 最終的にjpgで ...