Avatar billede dugi Nybegynder
04. december 2005 - 23:26 Der er 7 kommentarer

Vælg billede fra input felt og vis som img

Hej Eksperter,

Øhm, jeg har et lille problem.
Altså jeg har et <input type="file"> felt, når brugeren vælger et billede i dette felt, skal billedet vises i et <img>

Jeg har følgende kode:
--------------
<input type="file" class="txtfield" size="43" id="picture" name="picture" onchange="movePicture(\'picture\', \'showPicture\')" style="height: 22px">
--------------
<img id="showPicture" src="" style="width: 168px; height: 138px; border: 1px solid #c6cdd9">
--------------
function movePicture(id, viewerid)
{
  document.getElementById(viewerid).src = document.getElementById(id).value;
}



Selve scriptet virker perfekt i IE, men den vil ikke vise billedet i Firefox - men Firefox's JavaScript-konsol viser ingen fejl.
Jeg prøvede herefter for sjov at kopirer hele stien til billedet, jeg ville oploade (C:\Dokumenter .. bla bla) og det kunne den faktisk ikke vise - Er det pga. firefox som ikke kan vise billeder fra brugeres Harddisk eller er det min kode, som ikke virker i Firefox?

Hvis det er min kode som ikke virker, må i rigtig rigtig gerne skrive en kode, som virker!

På forhånd tusind tak!

Med venlig hilsen
Morten
Avatar billede roenving Novice
06. december 2005 - 12:44 #1
Det er ikke alle browsere, der gætter på protokollen, så den skal du tilføje:

function movePicture(id, viewerid)
{
  document.getElementById(viewerid).src = "file:///" + document.getElementById(id).value;
}

-- iøvrigt kan du ligesågodt benytte dig af, at du kalder tingen fra selve elementet, så:

<input type="file" class="txtfield" size="43" id="picture" name="picture" onchange="movePicture(this, \'showPicture\')" style="height: 22px">

-- og

function movePicture(elm, viewerid)
{
  document.getElementById(viewerid).src = "file:///" + elm.value;
}
Avatar billede dugi Nybegynder
06. december 2005 - 20:52 #2
Hej roenving,

Først tak, for du ville hjælpe mig og for det lille tip - det benytter jeg mig allerede af.

Men til din løsning, får jeg altså følgende fejl:

Sikkerhedsfejl: Indholdet af http://localhost/eFriend/opret.php?e=6 henter eller linker måske slet ikke til file:///C:%5CDocuments%20and%20Settings%5CMorten%20Rugaard%5CDokumenter%5CBilleder%5C18%20%E5rs%20f%F8dselsdag%5CBillede01.jpg.


Denne fejl, kommer kun i Firefox!
Ved du hvad det kan være?
Avatar billede roenving Novice
07. december 2005 - 09:34 #3
Det er en generel sikkerhedsadvarsel, som du sikkert godt kan slå fra på din egen browser (kan dog ikke huske det med sikkerhed !-), men skal regne med kommer på alle andres alligevel !o]
Avatar billede dugi Nybegynder
07. december 2005 - 17:10 #4
Så dvs. at alle andre browsere ville det virke?
Men bare ikke lige i min version af firefox?

For den viser altså ingen ting :/
(Undskyld hvis jeg spørg dumt!)
Avatar billede roenving Novice
08. december 2005 - 02:32 #5
Næh, det skal du ikke være sikker på, for det er generelt i dag beregnet som en sikkerhedsrisiko at henvise til brugerens harddisk fra et script på en html-side (som jo kan komme fra hvemsomhelst, både de grimme og de gode !-)

-- jeg får ikke noget frm i Opera, fodi den åbenbart ikke beregner stien med i værdien, men jeg har ingen problemer i FireFox ?-)
Avatar billede dugi Nybegynder
08. december 2005 - 11:46 #6
Ja testede også i Opera - fik heller intet frem.
I Firefox, skriver den stien, men erstatter "/" med %5, så er det vel bare at lave en funktion der er erstatter dem, eller hvordan?
Avatar billede roenving Novice
08. december 2005 - 14:21 #7
Måske så:

.src = "file:///" + unescape(elm.value);

-- evt. escape ...
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