- /**
- * リモート画像をローカルにダウンロードします
- *
- * @param string $url リモートファイルアドレス
- * @param string $filename 保存されたファイル名 (空の場合はランダムに生成されたファイル名、それ以外の場合は元のファイル名)
- * @param array $fileType 許可されるファイルの種類
- * @param string $dirName ファイルが保存されるパス (パスの残りの部分は時間システムに基づいて自動的に生成されます)
- * @param int $typeファイルをリモートで
- * @return json ファイル名、ファイル保存パスを返します
- * @author blog.snsgou.com
- */
- function download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1 )
- {
- if ($url == '')
- {
- return false;
- }
-
- // ファイルの元のファイル名を取得します
- $defaultFileName = Basename($url);
-
- // ファイルを取得しますtype
- $suffix = substr(strrchr($url, '.'), 1);
- if (!in_array($suffix, $fileType))
- {
- return false;
- }
-
- // 保存したファイル名を設定
- $fileName = = '' ? time() . rand(0, 9) . $suffix : $defaultFileName;
-
- // if ($type) {
- $ ch =curl_init( );
- $timeout = 30;
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- $file =curl_exec($ ch);
- curl_close($ch);
- }
- else
- {
- ob_start();
- readfile($url);
- $file = ob_get_contents();
- ob_end_clean();
- }
-
- / / ファイルの保存パスを設定します
- //$dirName = $dirName . date('Y', time()) . date( 'd', time());
- $dirName = $dirName . date('Ym', time());
- if (!file_exists($dirName))
- {
- mkdir($dirName, 0777) , true);
- }
-
- // ファイルを保存します
- $res = fopen($dirName . '/' . $fileName, 'a');
- fwrite($res, $file);
- fclose($res) ;
-
- return array (
- 'fileName' => $fileName,
- 'saveDir' => $dirName
- );
- }
-
-
コードをコピー
|
PHP