Newsgroup: it.comp.lang.javascript
Titolo: Inserire immagine

Ciao a tutti !
Mi ritrovo con una pagina HTML con un campo input di tipo "file", dove 
l'utente dovra' selezionare l'immagine da UpLoadare.
Ora io vorrei poter far apparire nella pagina un'anteprima dell'immagime 
che l'utente ha inserito prima dell'UpLoad al server.
Ho lavorato col DOM e ho creato un tag img con il src che punta al file 
locale, ma purtroppo l'unica cosa che mi restituisce e' il testo posto 
in alt.
COn WebDevelop (extension per FireFox) ho visto il codice generato e il 
path del file e' giustom tant'e' che se prendo tale path e lo copio 
incollo nella barra degli indirizzi, l'immagine la vedo senza problemi.
Ho supposto che sia una questione di sicurezza, ma forse voi conoscete 
un metodo per permettere qualche cosa di similare (anteprima di 
un'immagine prima dell'upload).
Grazie infinite

 un'immagine prima dell'upload).
hai dimenticato di postare il codice (come logica quello che dici di aver
fatto è corretto)
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.

 
<script type="text/javascript">
<!--
    function viewImage(path)
    {
      var newImage = document.createElement('img');
      newImage.setAttribute('src', "file://"+path);
      newImage.setAttribute('alt', "NUOVA IMMAGINE");
      document.getElementById("prwImage").appendChild(newImage);
    }
-->
</script>
<div id="prwImage">
    <label for="image"> Immagine da associare alla news </label>
    <input type="file" name="image" id="imageNews" onchange="javascript: 
viewImage(this.value);"/>
</div>
Ho debuggato e alla funzione viewImage il path arriva corretto.
Grazie
ciao

 Ho debuggato e alla funzione viewImage il path arriva corretto.
E il TAG viene effettivamente aggiunto e con il path che mi aspetto che 
abbia.
Grazie ancora.

 Ho debuggato e alla funzione viewImage il path arriva corretto.
mi sono talmente incuriosito che ora provo pure io, spero tu
non ne abbia a male ;-)
raenkrus

> Ho debuggato e alla funzione viewImage il path arriva corretto.
beh, ma non hai fatto la cosa più semplice: guardare gli errori in
firefox...
Errore di sicurezza: I contenuti in
http://www.criosoftware.it/bak/VisImgDaInputFile.htm
 non possono caricare o
avere collegamenti che rimandino a
file:///C:/Documents%20and%20Settings/clarghi/Desktop/concludi.gif.
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.


uhm strano a me non dà nessun errore, ho testato lo script
con IE6 e FF, mentre con opera succede quel che dice il nostro
amico, esce solo il testo dell'attributo alt. ah inoltre con IE6 (sp2)
esce il solito avviso di sicurezza "consenti contenuto attivo" ecc...
riguardo al mio post precedente, mi correggo: è giusto "file://"
raenkrus

 un'immagine prima dell'upload).
Non c'e' modo, forse lo permette ancora IE6...

> riguardo al mio post precedente, mi correggo: è giusto "file://"
Eh, no, forse ti sei corretto una volta di troppo :)
era giusto file:///

 esce il solito avviso di sicurezza "consenti contenuto attivo" ecc...
:-O
 
http://www.criosoftware.it/bak/VisImgDaInputFile.htm
firefox 1.5 segnala l'errore che ho riportato, ie6sp1 nessun problema.
Ma qualche tempo fa se non ricordo male se ne è parlato di questo "nuovo"
comportamento delle ultime versioni di alcuni browser.
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

Ugo ha scritto:

quoto :-)
ho corretto un attimo lo script ed effettivamente, come dice Cristiano,
la console di FF restituisce due errori di sicurezza, con Opera si
visualizza il testo dell'attributo alt e infine con IE6 il tutto
funziona
senza errori e/o avvisi di sorta.
concludendo, secondo me l'idea è buona ma non è affidabile.
@ ugo: ho provato sia file:// sia file:///, sembra che funzioni con
entrambi...
(ovviamente solo in IE6, che è risaputo sia di "manica larga")
raenkrus

Ugo ha scritto:

Il modo l'ho trovato giocando tra le prefs.js
ho aggiunto:
user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "
http://www.sito.it
 
http://www.altrosito.com
");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", 
"allAccess");
Come indicato qua:
http://kb.mozillazine.org/Links_to_local_pages_don't_work#Firefox_1.5.2C_SeaMonkey_1.0_and_newer
Certo, cio' impone che l'utente debba fare questo ... ma per il mio caso 
  va  piu' che bene, poiche' e' un servizio dentro ad una LAN.
Grazie
Ciao

 (ovviamente solo in IE6, che è risaputo sia di "manica larga")
A beh, se per questo funziona anche con file: e file:/
(tra l'altro anche con FF che cerca di fare una sorta di redirect corretto)
con cio' e' giusto mettere file:///