У меня есть веб-сайт, который использует ajax для большинства случаев. Я позволил пользователю загружать изображение через ajax. Когда пользователь нажимает на кнопку, изображение отображается в модальном режиме с помощью вызова ajax.
Теперь я хочу, чтобы пользователь начал свою загрузку, нажав на изображение, не закрывая модальное окно или не обновляя его. Я попробовал с HREF. Он работает нормально, но, как я уже упоминал, я хочу, чтобы пользователь оставался на той же странице с открытым модалом.
Код, который я пробовал до сих пор:
$(document).ready(function(){
var imgname;
imgname = '';
$("#modalimage").click(function(){
imgname = $("#downloadimg").val();
downloadImage(imgname);
})
})
function downloadImage(imagename){
$.ajax({
type : "POST",
url : "download.php",
data : { imagename : imagename } ,
success : function(response){
alert('success');
}
})
}
download. php код:
if ( isset($_POST['imagename']) ) {
$filename = $_POST['imagename'];
$filepath = 'images/'.$filename;
}
echo $filepath;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filepath));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
Проблема здесь в том, что ajax вызывает вызов для загрузки. php создает ответ в виде некоторых двоичных кодов и небольшого изображения коды без начала загрузки. Можно ли загрузить изображение по телефону ajax?