Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung des Beispielcodes für PHP zum Herunterladen von Dateien in den lokalen Bereich
Hinweis: Diese Demo ist für das yii-Framework geeignet Wenn Sie das yii-Framework nicht verwenden, ist diese Methode auch auf Sie anwendbar.
/** * 保存文件到本地 * @param 文件路径 $url * @param 保存本地路径 $savePath * @return string */ public static function downloadFile($url) { $www_root = Yii::getPathOfAlias('webroot'); $root_dir = 'uploads/audio'; $build_dir = date('Y') . '/' . date('m'); $origin_dir = $root_dir . '/' . $build_dir; $savePath = $www_root . DIRECTORY_SEPARATOR . $origin_dir . DIRECTORY_SEPARATOR;// 本地存放的路径(我是按照年月日来划分) $fileName = Common::getUrlFileExt($url); // 获取文件扩展名 if (!file_exists($savePath)) { Common::mkdirs($savePath); //目录不存在创建目录 } $fileName = time() . '.' . $fileName; //$file = file_get_contents($url); $ch = curl_init(); $timeout = 60; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); //使用curl $ch 为返回的文件流 if (!empty($file_contents)) { file_put_contents($savePath . '/' . $fileName, $file_contents); //保存到本地的地址 return '/' . $origin_dir . '/' . $fileName; //返回本地地址 } } /** * 获取文件扩展名 * @param 网页URL $url * @return string */ public static function getUrlFileExt($url) { $ary = parse_url($url); $file = basename($ary['path']); $ext = explode('.', $file); return $ext[1]; }
/** * 创建多级目录 */ public static function mkdirs($dir) { if (!is_dir($dir)) { if (!Common::mkdirs(dirname($dir))) { return false; } if (!mkdir($dir, 0777)) { return false; } } return true; }
downloadFile(http://www.php.cn/); // 调用
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcodes für PHP zum Herunterladen von Dateien in den lokalen Bereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!