Paikallisen kuvan lataaminen sivulle, polun selvittäminen

Anonyymi

Tarkoitus olisi saada käyttäjän valitsemaan omalta koneelta kuva, joka näytettäisiin sivulla.

Kuvan voi valita input-elementillä asettamalla type imageksi.

<input ref="fileList" type="file" accept="image/*"/>

Tuo tekee sivulle valintanappulan, joka aukaisee kuvatiedostojen valintaikkunan. Tiedostolistaus löytyy valinnan jälkeen elementin .files:stä, eli .files[0] on ensimmäinen tiedosto (tai tässä tapauksessa ainoa) jne.

Tarkoitus olisi sitten laittaa kohde-elementin .src:hen tiedostonimi polkuineen, mutta polkuna on "C:\fakepath", kun käyttää elementin value:ta. Tiedosto-objektissa taas ei ole kuin

lastModified: 1519296733000
​name: "testikuva.jpg"
​size: 27033
​type: "image/jpeg"
​webkitRelativePath: ""

On ilmeisesti joku tietoturvasyy miksi polku on piilotettu, mutta tässä tapauksessa kuvaa ei olla lähettämässä (upload) mihinkään, vaan pelkästään näytettäisiin se nettisivulla. Milläköhän tavalla saisi tuon polun selville?

6

216

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      <!DOCTYPE html>
      <html lang="fi">
      <head>
      <meta charset="utf-8" />
      <title>Esimerkki</title>
      <script type='text/javascript'>
      function NäytäKuva(event)
      {
      var reader = new FileReader();
      reader.onload = function()
      {
      var output = document.getElementById('Kuva');
      output.src = reader.result;
      }
      reader.readAsDataURL(event.target.files[0]);
      }
      </script>
      </head>
      <body>
      <input type="file" accept="image/*" onchange="NäytäKuva(event)">
      <br>
      <img id="Kuva"/>
      </body>
      </html>

      • Anonyymi

        Tattis, tuota FileReaderia käyttäen sain toimimaan.


      • Anonyymi
        Anonyymi kirjoitti:

        Tattis, tuota FileReaderia käyttäen sain toimimaan.

        Kännykässä näköjään Firefox Focus ei suostu näyttämään kuvaa, mutta Edge näyttää.


    • Anonyymi

      Mikään skripti ei pääse käsiksi dataan joka on eri lähteessä: https://en.wikipedia.org/wiki/Same-origin_policy

      Eli nettisivusi olisi sitten myös siellä "koneella" missä kuva valitaan. Eli HTTP palvelimella jako missä on se nettisivu ja kuvat niin sitten siellä voi valita.

      • Anonyymi

        Tämä on toinen tapa: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL


      • Anonyymi

        Juu, CORS-hässäkkä on tuttu. Tuossa vaan kokeilin Vuessa tehdä komponenttia, johon voi valita näkyvän kuvan paikallisesti. Aloitukseni otsikko oli sikäli harhaanjohtava, kun ei mitään varsinaisesti ladata, vaan pelkästään laitetaan img:n src:ksi valitun kuvan polku.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. IL - Kansanedustaja tehnyt ITSEMURHAN eduskuntatalossa!!

      "IL:n tiedot: Kansanedustaja tehnyt itsemurhan Eduskuntatalossa Iltalehden tietojen mukaan kansanedustaja on tehnyt its
      Maailman menoa
      402
      8701
    2. Eemeli Peltonen teki itsemurhan eduskuntatalossa

      Kevyet mullat sitten vaan. Ei mulla muuta.
      Maailman menoa
      168
      3061
    3. Kuka pistetty kylmäksi

      Ketähän joutunu puukkohipan uhriksi? Tietääkö kukkaan?
      Kajaani
      16
      1463
    4. Mietin että

      Onko tarinallamme vielä luvussa tilaa kohtaamiselle vai jääkö se tähän.
      Ikävä
      74
      1056
    5. Oletko samaa mieltä

      Että on parempi olla erillään?
      Ikävä
      76
      1038
    6. Postilaatikoista

      Tuntuu kaikki tietävän tekijän/tekijät, mutta miksi nimiä ei julkaista???
      Kihniö
      27
      995
    7. Sylikkäin.

      Sylikkäin, suudellen. Milloin haluaisit näin nainen tehdä ? Vain häntä ajatellen 😘. Tietenkin jos häntä asia kiinnosta
      Ikävä
      62
      950
    8. Nainen arvaa kuka

      En ikävä kyllä elä enää pitkään
      Ikävä
      55
      933
    9. Sano nyt kiertääkö

      Huhut meistä tai jostain muusta?
      Ikävä
      65
      890
    10. Eemeli Peltosen viimeinen postaus Facebookissa!

      "Olen ollut kevätistuntokauden viimeisillä viikoilla paljon poissa eduskuntatyöstä. Sain toukokuussa hyvää hoitoa HUSiss
      Maailman menoa
      73
      874
    Aihe