Avatar billede hifi4all Nybegynder
21. september 2005 - 20:08 Der er 7 kommentarer og
1 løsning

Upload billedepreview - virker i IE, men ikke i andre browsere!

Hej!

Jeg benytter følgende nedenstående preview script, men kan ikke få det at vise billedet i andet end IE browsere.

Er der nogen der kan være behjælpelige med at gøre det komp. med Firefox, NS og Opera?

Koden:
<script language="JavaScript" type="text/JavaScript">
function previewImage(fileInfo) {
var filename = "";
//Skab sti til lokal fil
if (fileInfo == null) {
if (document.FORM.IMAGEFIELD != "") {
filename = "file:///" + document.FORM.IMAGEFIELD.value;
}
} else {
filename = fileInfo;
}
//check for værdi
if (filename == "") {
alert ("Du kan først se billedet, når du har tilføjet det. \nKlik på \"Gennemse...\" og find et billede på din computer!");
document.FORM.IMAGEFIELD.focus();
} else {
//Lav pop-preview
popup = window.open('', 'BilledPreview', 'width=420,height=400,left=100,top=75,screenX=100,screenY=75,scrollbars,resizable=1');
//Udskriv HTML
popup.document.writeln("<html><body bgcolor='#FFFFFF'>");
//Udskriv filendelse
var fileExtension = filename.substring(filename.lastIndexOf(".")+1);
if (fileExtension == "jpg" || fileExtension == "jpeg" || fileExtension == "JPEG" || fileExtension == "JPG")
popup.document.writeln("<font size='4' face='Verdana'><b>Billede preview</b></font><br><br><font size='1' face='Verdana'><b>Bemærk venligst:</b><br>- Billedet <u>SKAL</u> være af typen JPG eller JPEG<br>- Billedet fysiske og datamæssige størrelse ændres under upload!</font><br><br><img src='" + filename + "'>");
else
//Udskriv, hvis ikke gyldig fil
popup.document.writeln("<b><font size='4' face='Verdana'>FEJL!</font></b><br><font size='1' face='Verdana'>Den fil du forsøger at vise, er ikke af typen jpg eller jpeg og kan derfor ikke bruges til upload!<br><br>Vælg venligst et andet billede!</font><br><br><b><font size='4' face='Verdana' color='#FF0000'>ADVARSEL</font></b><br><font size='1' face='Verdana'>Hvis du fortsat forsøger at uploade nedenstående fil-streng, får du endnu en fejlmeddelse, når du klikker 'Opret annonce'!</font><br><br><font size='1' face='Verdana'><b>Sti til fil med fejl:</b><br><a href='" + filename + "'>" + filename + "</a></font>");
popup.document.writeln("</body></html>");
popup.document.close();
popup.focus();
}
}
</script>

På forhånd tak!
Avatar billede olebole Juniormester
21. september 2005 - 21:30 #1
<ole>

1. Får du fejl-meddelelser - og hvad siger de?
2. Hvad ligger i 'fileInfo'?
3. Hvordan kalder du funktionen?
4. Hvis din form hedder 'FORM', bør du vælge et andet navn

/mvh
</bole>
Avatar billede hifi4all Nybegynder
21. september 2005 - 21:44 #2
1. Jeg får ingen fejl, men kan blot ikke se billedet i andre browsere end IE :(
2. Fileinfo er filen (billedet) og dens endelse, eks. billede.jpg
3. Filen kaldes via: <INPUT TYPE="button" NAME="Button" VALUE="vis" ONCLICK="previewImage(document.FORM.IMAGEFIELD.value)">
4. Formen hedder ikke "form", men er ændret i det tilfælde andre kunne bruge scriptet senere hen ;)

Min hedder NEW.IMAGE
Avatar billede olebole Juniormester
22. september 2005 - 01:16 #3
Prøv dette:

<script type="text/JavaScript">
function previewImage(fileField) {
    var fileInfo = fileField.value;
    var filename = "";
    //Skab sti til lokal fil
    filename = "file:///" + fileField.value.toString().replace(/\\/g, "/");
    //check for værdi
    if (filename == "") {
        alert ("Du kan først se billedet, når du har tilføjet det. \nKlik på \"Gennemse...\" og find et billede på din computer!");
        fileField.focus();
    } else {
        //Lav pop-preview
        popup = window.open('', 'BilledPreview', 'width=420,height=400,left=100,top=75,screenX=100,screenY=75,scrollbars,resizable=1');
        //Udskriv HTML
        popup.document.writeln("<html><body bgcolor='#FFFFFF'>");
        //Udskriv filendelse
        var fileExtension = filename.substring(filename.lastIndexOf(".")+1);
        if (fileExtension == "jpg" || fileExtension == "jpeg" || fileExtension == "JPEG" || fileExtension == "JPG") {
            popup.document.writeln("<font size='4' face='Verdana'><b>Billede preview</b></font><br><br><font size='1' face='Verdana'><b>Bemærk venligst:</b><br>- Billedet <u>SKAL</u> være af typen JPG eller JPEG<br>- Billedet fysiske og datamæssige størrelse ændres under upload!</font><br><br><img src='" + filename + "'>");
        } else {
            //Udskriv, hvis ikke gyldig fil
            popup.document.writeln("<b><font size='4' face='Verdana'>FEJL!</font></b><br><font size='1' face='Verdana'>Den fil du forsøger at vise, er ikke af typen jpg eller jpeg og kan derfor ikke bruges til upload!<br><br>Vælg venligst et andet billede!</font><br><br><b><font size='4' face='Verdana' color='#FF0000'>ADVARSEL</font></b><br><font size='1' face='Verdana'>Hvis du fortsat forsøger at uploade nedenstående fil-streng, får du endnu en fejlmeddelse, når du klikker 'Opret annonce'!</font><br><br><font size='1' face='Verdana'><b>Sti til fil med fejl:</b><br><a href='" + filename + "'>" + filename + "</a></font>");
        }
        popup.document.writeln("</body></html>");
        popup.document.close();
        popup.focus();
    }
}
</script>

<form>
<input type="file" name="bla">
<button onclick="previewImage(this.form.bla);return false">TEST</button>
</form>
Avatar billede olebole Juniormester
22. september 2005 - 01:20 #4
Et par kosmetiske rettelser i funktionen:

function previewImage(fileField) {
    var fileInfo = fileField.value.toString();
    //check for værdi
    if (fileInfo == "") {
        alert ("Du kan først se billedet, når du har tilføjet det. \nKlik på \"Gennemse...\" og find et billede på din computer!");
        fileField.focus();
    } else {
        //Skab sti til lokal fil
        var filename = "file:///" + fileInfo.replace(/\\/g, "/");
        //Lav pop-preview
        popup = window.open('', 'BilledPreview', 'width=420,height=400,left=100,top=75,screenX=100,screenY=75,scrollbars,resizable=1');
        //Udskriv HTML
        popup.document.writeln("<html><body bgcolor='#FFFFFF'>");
        //Udskriv filendelse
        var fileExtension = filename.substring(filename.lastIndexOf(".")+1);
        if (fileExtension == "jpg" || fileExtension == "jpeg" || fileExtension == "JPEG" || fileExtension == "JPG") {
            popup.document.writeln("<font size='4' face='Verdana'><b>Billede preview</b></font><br><br><font size='1' face='Verdana'><b>Bemærk venligst:</b><br>- Billedet <u>SKAL</u> være af typen JPG eller JPEG<br>- Billedet fysiske og datamæssige størrelse ændres under upload!</font><br><br><img src='" + filename + "'>");
        } else {
            //Udskriv, hvis ikke gyldig fil
            popup.document.writeln("<b><font size='4' face='Verdana'>FEJL!</font></b><br><font size='1' face='Verdana'>Den fil du forsøger at vise, er ikke af typen jpg eller jpeg og kan derfor ikke bruges til upload!<br><br>Vælg venligst et andet billede!</font><br><br><b><font size='4' face='Verdana' color='#FF0000'>ADVARSEL</font></b><br><font size='1' face='Verdana'>Hvis du fortsat forsøger at uploade nedenstående fil-streng, får du endnu en fejlmeddelse, når du klikker 'Opret annonce'!</font><br><br><font size='1' face='Verdana'><b>Sti til fil med fejl:</b><br><a href='" + filename + "'>" + filename + "</a></font>");
        }
        popup.document.writeln("</body></html>");
        popup.document.close();
        popup.focus();
    }
}
Avatar billede hifi4all Nybegynder
22. september 2005 - 09:00 #5
Tak for svaret, men det gør desværre ingen forskel.

Jeg har dog fundet du af, at Firefox ikke tillader at hente en lokal fil af sikkerhedsmæssige årsager, så det er nok der fejlen opstår.

Det modificerede script virke, som forventet, fint i IE, men der er lidt forskel på de forskellige browsere:
- NS åbner ikke længere noget previewvindue
- Opera åbner previewvindue, men erstatter billede med "billedikon / billede mangler"
- Firefox åbner vindue, men viser intet billede (dog er det her muligt, i javascriptkonsol, at læse, at det er tale om sikkerhed)

Jeg tror jeg må skuffe de 6-7 % som bruger andre browsere end IE, og lad funktionen være som den er?

Med mindre du har flere forslag, så send et svar - du skal have points for din vilje til at hjælpe ;O)
Avatar billede hifi4all Nybegynder
26. september 2005 - 18:32 #6
lukker

smid svar for points :)
Avatar billede hifi4all Nybegynder
29. september 2005 - 10:47 #7
Olebole, skal du have point, inden der lukkes? ;)
Avatar billede hifi4all Nybegynder
04. oktober 2005 - 09:23 #8
der lukkes
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