gpt4 book ai didi

php - 从任何 URL 位置自动下载图像

转载 作者:可可西里 更新时间:2023-11-01 13:11:24 25 4
gpt4 key购买 nike

我在一个项目的后期遇到了一个严重的问题:

我编写了一个 PHP 函数,使用户可以通过单击图像链接自动将图像下载到硬盘上。但这很容易,因为图像已上传到网站服务器,而且我知道它是完整的服务器地址。例如:"home/clients/websites/w_apo/public_html/wp-content/uploads/image.jpg"

但现在客户希望能够从他自己的地址 http://www.something.com/image.jpg 粘贴图像 URL,并且仍然能够通过单击自动下载该图像在前端的链接上。

我是这个编程领域的新手,所以我真的需要你的帮助。欢迎任何链接、建议和资源。

谢谢!

这是我当前的下载功能:

download_file($_GET['file']);

/******************************************************************/

function download_file( $fullPath ){

// Must be fresh start
if( headers_sent() )
die('Headers Sent');

// Required for some browsers
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

// File Exists?
if( file_exists($fullPath) ){

// Parse Info / Get Extension
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);

// Determine Content Type
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}

header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$fsize);
ob_clean();
flush();
readfile( $fullPath );

} else
die('File Not Found');

}

最佳答案

您有几个选择。 #1 使用 file_get_contents。这不是最好的方法,但它会起作用。

<?php
//Get the file
$content = file_get_contents("http://example.com/image.jpg");


//Store in the filesystem.
$fp = fopen("/location/to/save/image.jpg", "w");
fwrite($fp, $content);
fclose($fp);
?>

选项 #2 使用 cURL:

See this example

关于php - 从任何 URL 位置自动下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com