0
我有一個js腳本,該服務器上的特定文件夾中保存的圖像。JPG格式:複製圖像文件到硬盤中PHP
$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
$decodedData = base64_decode($data);
$fp = fopen("imgdownload/cc.jpg", 'wb');
fwrite($fp, $decodedData);
fclose($fp);
下一步將是爲用戶保存在他/她的磁盤上,最好的方法是打開一個對話框「另存爲」並選擇名稱和位置,但只是強制下載到設置的位置將是一個夢想。
我已經試過:
$file = 'imgdownload/cc.jpg';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: image/jpg');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
還有其它的事情都沒有成功。我做錯了什麼,怎麼做對不對?
編輯 - 這是我的JS:
savePicture: function() {
$(this.el).find('canvas').attr('id', 'myCanvas');
var data = document.getElementById("myCanvas").toDataURL();
$.post("api/process.php", {
imageData: data
}, function(data) {
//window.location = data;
});
},
下載時發生了什麼?在第一次看時,可能更好的一件事就是您的內容類型。此外,您正在使用相對路徑,可能是一個問題..所以讓我們說,當他們下載的文件存在...什麼ecactly發生在您的瀏覽器? – Soulan 2014-08-29 07:55:23
我不認爲你可以強制'另存爲'對話框,因爲這是一個瀏覽器設置...人們可以選擇自動將其下載到首選文件夾... – RichardBernards 2014-08-29 07:56:58
發生了什麼:圖像到達服務器(與代碼的第一部分),並在Chrome網絡(Web開發工具)的響應部分我得到類似這樣的回覆:「 1請求| 513 KB轉移 HeadersPreviewResponseCookiesTiming PNG IHDR { IDATx^ynQ'Vro#BHFhX06 $ {XP#
oneday
2014-08-29 08:01:26