/**
* @param URL转换本地绝对路径
* @param string $url 目标地址
* @param addtime 2021年9月1日
*/
public function getlocalURL($val)
{
$pathinfos = pathinfo($val);
$tzm = $pathinfos['extension'];
$save_dir = "./temps/"; // 服务资源目录
$filename = date('Ymd') . time() . '.' . $tzm; // 自定义名称
# 检测文件大小
$Size = $this->getFileSize($val);
$file1 = '';
// 超过10M不保存
$result = $this->getFile($val, $save_dir, $filename, 1);
// if ($Size < 10) {}else{
// echo '下载失败';
// }
if ($result['code'] == 200) {
$file1 = '/home/www/wwwroot/jzt_admin_tp/public/temps/' . $result["fild_name"];
}
return $file1;
}
/**
* @param URL获取本地FILE
* @param string $url 目标地址
* @param addtime 2021年9月1日
*/
public function getFiles($url)
{
//获取文件dir
$file_dir = $url;
//使用file_exists判断文件是否存
ob_end_clean();
ob_start();
//打开文件
$handler = fopen($file_dir, 'r+b');
$file_size = filesize($file_dir);
//声明头信息
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: " . $file_size);
Header("Content-Disposition: attachment; filename=" . basename($file_dir));
// 输出文件内容
return fread($handler, $file_size);
fclose($handler);
ob_end_flush();
}
/**
* @param string $target_url 上传目标地址
* @param string $filename 上传文件路径
* @param string $form_name 表单名称
*/
public function curlUploadFile($target_url, $filename, $form_name)
{
$uploadFileMimeType = mime_content_type($filename);
$post_data['file'] = curl_file_create($filename, $uploadFileMimeType, $form_name);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
/**
* 下载文件到服务器
* addtime 2021年8月30日 09:38:43
*/
public function getFile($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);
$res['code'] = 200;
$res['fild_name'] = $filename;
return $res;
}
/**
* 检测文件大小
* addtime 2021年9月1日
*/
public function getFileSize($url)
{
$res = get_headers($url, true);
$filesize = round($res['Content-Length'] / 1024 / 1024, 2); //四舍五入获取文件大小,单位M
return $filesize;
}
声明 本人博客的所有东西,部分源于网络书籍和视频,其他的是个人的理解感悟,经过自己整理撰写成博客。 本人博客均只用于个人学习、复习,不作为商业用途,如有侵权,请联系我修改或删除。 联系邮箱:15121014713@163.com