محمد امیری
4 سال پیش توسط محمد امیری مطرح شد
3 پاسخ

دانلود فایل با ajax

با سلام.من میخوام لینک های ایمن دانلود برای فایل های دانلودی خودم درست کنم ولی خب از تگ لینک نمیخوام استفاده کنم و با axios میخوام تو لاراول درخواست رو با زدن روی یک آیکونی بدم و اطلاعات فایل رو بعد از اعتبار سنجی کاربر از پایگاه داده بگیرم و تو لاراول با تابع download درخواست دانلود رو ارسال کنم بدون اینکه لازم باشه لینک هش شده ایجاد کنم و این داستان ها.چطوری میتونم اینکارو کنم.ممنون میشم کمک کنید.
@hesammousavi
@mohsenbostan
@ali.bayat


ثبت پرسش جدید
محمد امیری
تخصص : backend coder
@mohammadeng3731 4 سال پیش مطرح شد
0

من کد زیر رو امتحان کردم و جواب داد اما مشکلش اینه که اصلا با اینترنت دانلود منیجر نمیتونه ارتباط برقرار کنه.

let span = document.querySelector('span');
    span.addEventListener('click', function () {
        let url = '{{route("download")}}';
        let data = {};
        axios.post('{{route('download')}}', data, {
            responseType: 'blob',

        }).then(function (response) {
            let url = URL.createObjectURL(response.data);
            let a = document.createElement('a');
            a.setAttribute('href', url);
            a.download = 'Screenshot (2).png';
            document.body.appendChild(a);
            a.click();
            a.remove();
        })
    })

محمد قربانی
تخصص : برنامه نویس لاراول
@mohammadghorbani1992 4 سال پیش مطرح شد
0

سلام
این مورد رو تست کنید خبرش رو اعلام کنید لطفا

function downloadFile(response) {
  var blob = new Blob([response], {type: 'application/pdf'})
  var url = URL.createObjectURL(blob);
  location.assign(url);
} 

$.ajax({
  url: "{{ route('screen.pdfticket') }}",
  method: 'POST',
  data: {
    id: $('#screenid').val()
  }
})
.done(downloadFile);

با axios هم

axios({
  url: 'http://vvv.dev',
  method: 'GET',
  responseType: 'blob', // important
}).then((response) => {
  if (!window.navigator.msSaveOrOpenBlob){
    // BLOB NAVIGATOR
    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'download.pdf');
    document.body.appendChild(link);
    link.click();
  }else{
    // BLOB FOR EXPLORER 11
    const url = window.navigator.msSaveOrOpenBlob(new Blob([response.data]),"download.pdf");
  }
});

سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 4 سال پیش مطرح شد
0

سلام من این کد رو زدم جواب داد

document.getElementById('cv').onclick = function (e) {
                e.preventDefault();
                $.ajax({
                    url: 'https://sina.pdf',
                    method: 'GET',

                });
            };

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام