ho un serio problema nella fase avanzata di un progetto a cui sto lavorando su:scaricare automaticamente le immagini da qualsiasi luogo URL
ho scritto una funzione PHP che rende possibile per un utente di scaricare un'immagine automaticamente un disco rigido facendo clic sul suo collegamento. Ma è stato facile perché l'immagine è stata caricata sul server del sito web e sapevo che era l'indirizzo completo del server. Per esempio: "home/clients/websites/w_apo/public_html/wp-content/uploads/image.jpg"
Ma ora il cliente vuole la capacità di incollare l'URL dell'immagine dal suo proprio indirizzo http://www.something.com/image.jpg
e ancora in grado di scaricare automaticamente l'immagine cliccando sul link sul frontend.
Sono un po 'nuovo in questa area di programmazione, quindi ho davvero bisogno del tuo aiuto. Qualsiasi link, consiglio, risorse sono i benvenuti.
Grazie!
Questa è la mia attuale funzione per il download:
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');
}
Pubblica il tuo codice. –
pubblicato. puoi per favore dirmi come aggiustarlo? grazie –
La nuova posizione dell'immagine proviene da fonti diverse? O si troveranno sullo stesso server? –