Tôi gặp vấn đề nghiêm trọng trong giai đoạn cuối của dự án mà tôi đang làm việc:Tự động tải xuống hình ảnh từ bất kỳ vị trí URL nào
Tôi đã viết một chức năng PHP giúp người dùng có thể tự động tải xuống hình ảnh một ổ cứng bằng cách nhấp vào liên kết của nó. Nhưng điều đó thật dễ dàng vì hình ảnh đã được tải lên máy chủ trang web và tôi biết đó là địa chỉ máy chủ đầy đủ. Ví dụ: "home/clients/websites/w_apo/public_html/wp-content/uploads/image.jpg"
Nhưng hiện tại khách hàng muốn có khả năng dán URL hình ảnh từ địa chỉ riêng của mình http://www.something.com/image.jpg
và vẫn có thể tự động tải xuống hình ảnh đó bằng cách nhấp vào liên kết trên giao diện người dùng.
Tôi là người mới trong lĩnh vực lập trình này nên tôi thực sự cần sự giúp đỡ của bạn. Bất kỳ liên kết, lời khuyên, tài nguyên được chào đón nhất.
Cảm ơn!
Đây là chức năng hiện tại của tôi để tải về:
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');
}
bài viết mã của bạn. Đã đăng –
. bạn có thể cho tôi biết cách điều chỉnh nó không? thanks –
Vị trí hình ảnh mới có đến từ các nguồn khác nhau không? Hoặc chúng sẽ được đặt trên cùng một máy chủ? –