私は私が働いているプロジェクトの後期での深刻な問題を抱えている:自動的に画像をダウンロード
私は自動的に画像をダウンロードするユーザーのために、それを可能にする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');
}
あなたのコードを投稿してください。 –
が投稿されました。あなたはそれを調整する方法を教えてくださいできますか?ありがとうございます –
新しい画像の場所はさまざまなソースから来ますか?または、それらは同じサーバーに配置されますか? –