/** * 保存文件至指定目錄 * @param string $url 文件地址 * @param string $save_dir 保存目錄 * @param string $filename 保存文件名 * @param int $type 本地文件為0;網絡文件1、0皆可 * @return array|bool */ function save_web_file($url, $save_dir = '', $filename = '', $type = 0) { if (trim($url) == '') return false; if (trim($save_dir) == '') $save_dir = './'; if (0 !== strrpos($save_dir, '/')) $save_dir .= '/'; //保存目錄檢測,不存在則創建 if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) { return false; } //網絡文件 if ($type) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $content = curl_exec($ch); curl_close($ch); } else { ob_start(); readfile($url); $content = ob_get_contents(); ob_end_clean(); } $size = strlen($content); //文件大小 $fp2 = @fopen($save_dir . $filename, 'a'); fwrite($fp2, $content); fclose($fp2); unset($content, $url); return array( 'file_name' => $filename, 'save_path' => $save_dir . $filename, 'file_size' => $size ); } $url = 'http://dl.ppt123.net/pptbj/201603/2016030410190920.jpg'; // echo '<img src="' . $url . '">'; $save_path = 'Uploads'; $path_parts = pathinfo($url); $file_name = time() . '.' . $path_parts['extension']; $res = save_web_file($url, $save_path, $file_name, 0); var_dump($res);