Avatar billede MadsHaupt Juniormester
06. februar 2014 - 11:48 Der er 7 kommentarer og
1 løsning

Upload file to php

Jeg er ved at lave et Jeopardy spil på min hjemmeside som jeg først havde lavet til Windows, men som nu også skal være på min hjemmeside, og så skal man kunne inporter et gemt spil, altså en Jeopardy ".jpy", mit spørgsmål er hvordan jeg kan lave den upload så man kan se noget "<input type="file" />" input i spillet?.
Avatar billede MadsHaupt Juniormester
06. februar 2014 - 11:49 #1
Hvis der er noget jeg ikke har skrevet så spørg.
Avatar billede sonalias Seniormester
06. februar 2014 - 12:14 #2
javascript er ikke lavet til at loade filer da det laver et sikkerhedshul i sandkasse opbygningen.
Avatar billede MadsHaupt Juniormester
06. februar 2014 - 12:52 #3
Det jeg gerne vil, er et uploade en lille fil til php via javascript ajax, uden man kan noget input hvor man kan vælge filen, men hvor javascript'et beder det usynlige input om at åbne en fil, og så derefter skal sende det til php filen, og så svarar php filen tilbage til javascriptet.
Avatar billede MadsHaupt Juniormester
06. februar 2014 - 13:01 #4
Jeg har set en video om hvordan man laver det, men ikke hvordan man laver det uden at man kan se noget input.

Her er den tutorial jeg har set:
http://www.youtube.com/watch?v=pTfVK73CUk8
http://www.youtube.com/watch?v=T-SawkxuYnI
http://www.youtube.com/watch?v=GMUOAN60vHY
http://www.youtube.com/watch?v=ImIIHXRlL4k
http://www.youtube.com/watch?v=7U-UbMEpjUY
Avatar billede repox Seniormester
06. februar 2014 - 15:31 #5
Du kan ikke hente fra nogens computer uden interaktion med brugeren.

Med andre ord, så kan du ikke få en fil fra klienten uden klienten fortæller dig hvilken fil de vil give dig.
Avatar billede MadsHaupt Juniormester
07. februar 2014 - 09:15 #6
Er der ikke en måde at lave det så den åbner en open file dialog boks, når man klikker på en knap, og på en eller anden måde sende det til php filen?.
Avatar billede MadsHaupt Juniormester
07. februar 2014 - 21:45 #7
Jeg har fundet ud af det, jeg skulle bare skjule inputtet og ændre størrelsen på inputtet til den samme størrelse som knappen, og bruge noget "position: absolute" og noget "position: relative;".

Kode:
<span style="position: relative;">
    <button id="importGameButton">Importer spil</button>
    <input id="importGame" type="file" style="position: absolute; left: 0; top: 0; opacity: 0; cursor: pointer;" />
</span>


Og så har jeg brugt noget javascript til at ændre størrelsen på inputtet.

document.body.onload = function() {
var importGame = document.getElementById("importGame");
var importGameButton = document.getElementById("importGameButton");
importGame.style.width = importGameButton.clientWidth + "px";
importGame.style.height = importGameButton.clientHeight + "px";
}
Avatar billede MadsHaupt Juniormester
07. februar 2014 - 21:49 #8
Og så har jeg selvfølig også brugt det fra den tutorial jeg har set.

Kode:
importGame.onchange = function() {
                    var data = new FormData();
                    data.append("game", this.files[0]);
                    var sender = new XMLHttpRequest();
                    sender.open("post", "game.php", true);
                    sender.onreadystatechange = function() {
                        if (this.readyState == 4 && this.status == 200) {
                            loadGame(this.responseText);
                        }
                    }
                    sender.send(data);
                }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester