folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Javascript İle Görsel İndirmeye Zorlama



Javascript İle Görsel İndirmeye Zorlama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Merhaba arkadaşlar, (alışkanlık oldu yazıya böyle girmek)

     

    JavaScript ile image download ettirmek istiyorum fakat sürekli tarayıca görseli açıyor. 

    Bir button a bastığımda linkini verdiğim (başka sitedeki) görseli indirmesini istiyorum. İzinsiz indirmesi falan değil sağ tıkla farklı kaydetteki gibi nereye kaydedeceğini falan soracak işte, anladınız siz.

     

    Denediğim örnek image url = https://i.pinimg.com/736x/ea/17/d9/ea17d96a19985c3d172d61f132582318.jpg

     

    Link yapısında download attribute de ekledim fakat yine yemedi.

    Stackoverflow vb bir çok sayfada örnekleri denedim fakat başarılı olamadım. Ajax ile img çekip öyle işlem yapayım dedim onda da corsf header hatası aldım. 

    Velhasılı kelam yardımcı olursanız sevinirim.

    coder2 tarafından 23/Kas/19 13:49 tarihinde düzenlenmiştir

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    İşte bunların hepsi temel html temel js bilgisinin olmaması.

    <a href="img" download>

    Bu link yapısı linki indirmeye zorlar. Eğer kullanıcıya göstereceksen bunu yapabilirsin.

    Eğer illa js kullancam diyorsan (sebebini anlamadım)

    js ile dom olarak yukarıdaki yapıyı oluşturursun, sonra bu linke tıklatırsın. Yine indirme yapar.

    Kendi serverındaki dosyanın indirilmesini istiyorsan da header kullanman gerekiyor ki onu tekrar Google'dan araman lazım


    iyibu! yeniden..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    by_Tet bunu yazdı

    İşte bunların hepsi temel html temel js bilgisinin olmaması.

    <a href="img" download>

    Bu link yapısı linki indirmeye zorlar. Eğer kullanıcıya göstereceksen bunu yapabilirsin.

    Eğer illa js kullancam diyorsan (sebebini anlamadım)

    js ile dom olarak yukarıdaki yapıyı oluşturursun, sonra bu linke tıklatırsın. Yine indirme yapar.

    Kendi serverındaki dosyanın indirilmesini istiyorsan da header kullanman gerekiyor ki onu tekrar Google'dan araman lazım

    Hocam belirtmeyi unutmuşum konuda, html5 ile gelen download attribute de kullandım fakat olmadı.

     


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    coder2 bunu yazdı
    by_Tet bunu yazdı

    İşte bunların hepsi temel html temel js bilgisinin olmaması.

    <a href="img" download>

    Bu link yapısı linki indirmeye zorlar. Eğer kullanıcıya göstereceksen bunu yapabilirsin.

    Eğer illa js kullancam diyorsan (sebebini anlamadım)

    js ile dom olarak yukarıdaki yapıyı oluşturursun, sonra bu linke tıklatırsın. Yine indirme yapar.

    Kendi serverındaki dosyanın indirilmesini istiyorsan da header kullanman gerekiyor ki onu tekrar Google'dan araman lazım

    Hocam belirtmeyi unutmuşum konuda, html5 ile gelen download attribute de kullandım fakat olmadı.

     

    https://stackoverflow.com/questions/49474775/chrome-65-blocks-cross-origin-a-download-client-side-workaround-to-force-down

    Cross-origin muhabbetinden sanırım https ise link

    Edit:

    http://devnot.com/2019/cors-nedir/

     

    by_Tet tarafından 23/Kas/19 13:54 tarihinde düzenlenmiştir

    iyibu! yeniden..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hybris
    Hybris's avatar
    Kayıt Tarihi: 12/Haziran/2007
    Erkek

    sunucu tarafında header a content-dispoistion vererek de yapabilirsin.


    agile isn’t how fast you can go, it’s how fast you can turn.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    @by_Tet , evet hocam cross-origin sorunu. Belirttiğiniz linkte işaretli functio da denedim , fakat olmadı.

    @Hbris stakoverflow da bahsettiğiniz şekilde ekleme yapmaktan bahsedenler olmuş fakat nasıl yapacağımı anlayamadım.


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    zibilyon tane yol denedim, hiçbiri olmuyor.

    şöyle çözmüştüm ben.

     

    <?php
    $maindir = '/ornek/';
    $filename = $_GET["plink"];
    $file = $maindir . $filename . '.jpg';
    
    
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Type: application/zip");
    header("Content-Transfer-Encoding: binary");
    
    // read the file from disk
    readfile($file);

     

    function downloadFile(plink) {
        location.href = '/scripts/download/slide.php?plink=' + plink;
    }

     

    Ne kadar güvenilir bir yöntem bilmem.


    since 2005 // tbt
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    coder2 bunu yazdı

    @by_Tet , evet hocam cross-origin sorunu. Belirttiğiniz linkte işaretli functio da denedim , fakat olmadı.

    @Hbris stakoverflow da bahsettiğiniz şekilde ekleme yapmaktan bahsedenler olmuş fakat nasıl yapacağımı anlayamadım.

    Hocam link attım cors nedir diye.

    Özetle zaten olmamalı csrf açığı için

    Çözüm olarak da sunucu taraflı anlık çekip indirtmen gerekiyor. Üstteki örnekteki gibi


    iyibu! yeniden..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Php kısmında yapmayı denediğimde olmuştu @manyaki hocamın gösterdiği yapıya benzer bir mantık ile. Sunucuyu yormamak için tarayıcı üzerinde yapmak istedim fakat anlaşılan olmuyor veya bulana kadar fazla vakit kaybedeceğim. 

    Php kısmında sorunu çözeceğim artık. 

    Yardımcı olmaya çalışan arkadaşlara çok teşekkür ederim.


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tayga
    Tayga's avatar
    Kayıt Tarihi: 21/Haziran/2015
    Erkek

    https://www.dosyaupload.com/jsNM

    Burda butonla img kayıt var hocam biraz incelersen.Save button a basınca kaydediyor .

    Şu şekilde:

      btnSave.onclick = function () {
            canvasArea.toBlob(function (blob) {
                var link = document.createElement("a");
                link.download = "draw.png";
                link.href = URL.createObjectURL(blob);
                link.dispatchEvent(new MouseEvent('click'));
            }, 'image/png', 1);
        }



    Tayga tarafından 23/Kas/19 15:53 tarihinde düzenlenmiştir
Toplam Hit: 1399 Toplam Mesaj: 10
js image download force