>[info] 普通文件从服务器或远程下载到本地
##方法
`File::download($file_path,$file_name = '',$file_size = '',$ext='')`
##参数
| 名称 | 类型 | 说明 |
| --- | --- | --- |
| file_path | string | 远程文件 url 或服务器上文件路径 |
| file_name | string | 下载后文件名,不填写默认为 $file_path 中的文件名 |
| file_size | int | 文件大小,不填写自动获取,只能获取服务器上文件大小,建议填写 |
| ext | string | 文件扩展名,不带.号,强制指定文件扩展名 |
##使用示例
```
// 下服务器上的文件
return File::download("../build.php")
// 下载远程文件
return File::download("http://static.kancloud.cn/Static/home/image/15.png")
```
##助手函数
`download($file_path, $file_name = '', $file_size = '', $ext = '')`
>[info] 下载远程图片到服务器
##方法
`File::downloadImage($url,$filename='',$type=0)`
##参数
| 名称 | 类型 | 说明 |
| --- | --- | --- |
| url | string | 远程图片链接 |
| filename | string | 保存后的文件名,保存在服务器的路径+文件名 |
| type | enum | 保存图片的类型 0为 curl ,适用于静态图片,其他为缓冲缓存,适用于动态图片 |
##使用示例
```
$url = $this->request->post("url");
if (substr($url, 0, 4) != "http") {
return ajax_return_adv_error("url非法");
}
$name = "./tmp/" . get_random();
$filename = File::downloadImage($url, $name);
if (!$filename) {
return ajax_return_adv_error($filename);
} else {
$url = $this->request->domain() . substr($filename, 1);
return ajax_return_adv("下载成功", '', "图片下载成功,点击查看
{$url}");
}
```