勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでスマホ(iPhone / Android)に画像をダウンロードさせる方法とダウンロード後の保存場所について

  PHP

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は画像長押し等からメニュー的なものを開いて共有→何らかのアプリに送るような流れになるかと思っていた。

スマホでも画像ダウンロードは問題無いという点と、保存される場所(アプリ)について覚えておく。

 - PHP

  関連記事

フォームからアップロードした画像にPHPでロゴ画像(透かし)を追加する方法

フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を右下等、指定の位 ...

PHPで画像にモザイクをかけて保存

やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...

PHPからWebAPI(screendot)経由で他サイトのスクリーンショットを取得する方法

PHPで他サイトのスクリーンショットを取得したい。今回はライブラリは無しで実現し ...

PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー

PHPでファイルを書き込む際に「failed to open stream: H ...

formのinput="file"でディレクトリを選択させ、ディレクトリ内のファイルを全てアップロードする方法

フォームで複数のファイルをアップロードしたい場合、input="file"を複数 ...