Creo l'immagine e subito dopo la voglio visualizzare: non sempre funge
Codice:
<?
// adesso creiamo la thumbnail!!!
echo "<img border=\"0\" src=\"upload-createthumb-upload.php?l=140&src=../skiforum/upload/".$categoria_foto."/".$nome1."&categoria=".$categoria_foto."&nomefoto=".$nome1."\">";
echo "thumbnail creata";
?>
<p>Questa è la foto che hai appena caricato:</p>
<p><img border="0" src="upload/<?php echo"$cat_upload"; ?>/preview/<?php echo "$nome1"; ?>"></p>
- Faccio caricare una foto.
- Con la funzione: upload-createthumb-upload.php creo una piccola anteprima.
- Questa anteprima la faccio visualizzare subito dopo.
- L'anteprima viene sempre creata PERO' nella pagina che contiene il codice seguente non viene sempre visualizzata.
Ho il dubbio che succeda questo:
l'anteprima viene chiamata prima che la funzione upload-createthumb-upload.php abbia effettivamente creato e messo nella cartella prevista l'immagine.
Che soluzioni mi consigliate?
Posso mettere, che ne so, un secondo di pausa appena dopo la chiamata della funzione che mi crea l'anteprima?
Il problema mi pesa perchè l'utente non vedendo la fotina mi fa a"aggiorna la pagina" e questa mi carica sul server una seconda, terza,... volta la stessa identica foto. Ecco, secondo dubbio OT rispeto la mia richiesta principale, come posso vietare di fare il refresh della pagina?
OT
OT (Off Topic) significa fuori argomento.
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
Server
Ogni coppia hardware-software che fornisce appunto servizi ad utenti chiamati tradizionalmente clienti (clients) attraverso una rete.
Potresti mettere il contenuto del file upload-createthumb-upload.php in una funzione chiamata createthumb(),così come lo script che visualizza l'immagine (funzione mostrathumb())
Successivamente potresti richiamare prima la funzione createthumb e successivamente la funzione mostrathumb().
In alternativa puoi mettere una pausa prima della visualizzazione dell'immagine così:
Codice PHP:
<? sleep(1);?>
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
// adesso creiamo la thumbnail!!!
echo "<img border=\"0\" src=\"upload-createthumb-upload.php?l=140&src=../skiforum/upload/".$categoria_foto."/".$nome1."&categoria=".$categoria_foto."&nomefoto=".$nome1."\">";
echo "thumbnail creata";
// Ferma lo script per 2 secondi
sleep(2);
?>
<p>Questa è la foto che hai appena caricato:</p>
<p><img border="0" src="upload/<?php echo"$cat_upload"; ?>/preview/<?php echo "$nome1"; ?>"></p>
<?
Ho aggiunto lo sleep di ben due secondi e su tre foto caricate per 2 mi ha visualizzato l'anteprima mentre per la terza, proprio quando mi stavo convincendo di aver risolto il problema non me l'ha visualizzata.
Ieri su 40 foto caricate mi ha visualizzato l'anteprima per tutte... (sempre con firefox)
Browser
Un browser web (sfogliatore di documenti web) è un programma che interpretail codice delle pagine web e lo visualizza in forma di ipertesto
Echo
echo, che impropriamente chiamiamo funzione essendo un costrutto del linguaggio PHP, non fa altro che inviare al browser, e quindi visualizzare, il valore di una o più stringhe
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
<style type="text/css">
.nodisp {
display: none;
}
</style>
come mai che con il browser OPERA non mi viene creata l'immagine di anteprima che con gli altri browser ottengo sftuttando questo codice?
Codice:
<?
// adesso creiamo la thumbnail!!!
echo "<div class=\"nodisp\">\n";
echo "<img border=\"0\" src=\"uploads-createthumb-upload.php?l=140&src=../skiforum/upload/".$categoria_foto."/".$nome1."&categoria=".$categoria_foto."&nomefoto=".$nome1."\">\n";
echo "thumbnail creata";
echo"</div>\n";
// Ferma lo script per 2 secondi
//sleep(2);
?>
Può essere che il display:none faccia si che OPERA non mi attivi la funzione richiamata in quel div.
Se si, come posso non far apparire al visitatore la crocetta rossa di immagine mancante che tale funzione mi genera?
CSS
Fogli di Stile
Browser
Un browser web (sfogliatore di documenti web) è un programma che interpretail codice delle pagine web e lo visualizza in forma di ipertesto
abito sulla luna e ogni volta che mi telefono è un'interrurbana
Messaggi
2,413
puoi modificare lo script in modo che visualizzi l'immagine solamente dopo aver fatto il controllo di esistenza del file.
p.s. non ho il link ad una pagina di esempio per poter controllare ma tra tutti quei parametri sicuro che non passi anche il nome del file con il quale viene creata la fotografia?
in caso tu passi anche il nome di destinazione attento perchè con una semplicissima modifichina all'url si potrebbero generare sul tuo server migliaia di fotografie saturandoti lo spazio su disco disponbile.
Link
Collegamento Ipertestuale
URL
(Uniform Resource Locator) è un indirizzo di una risorsa in Internet
Server
Ogni coppia hardware-software che fornisce appunto servizi ad utenti chiamati tradizionalmente clienti (clients) attraverso una rete.
Commenti al post precedente.
Il controllo del file esistente o meno lo faccio per thumbnail nelle pagine del sito.
Mi hai suggerito un OTTIMO CONTROLLO.
Per evitare che qualcuno mi faccia creare l'anteprima delle SUE immagini nel MIO spazio applicherò la creazione delle preview SOLAMENTE SE la foto da rimpicciolire è presente in una cartella del mio spazio.
Quindi ora mi metto al lavoro ed affino ulteriormente lo script con la condizione:
if (preview non ancora esistente){
if (la foto grande è nella posizione del mio spazio...) {
CREO
A proposito. Come faccio a dire allo script:
se la foto è nel mio spazio procedi oppure fermarti e stampa (foto non presente nel mio spazio)
Post
Post è il termine utilizzato per segnalare la scrittura e pubblicazione di un messaggio testuale in un determinato spazio web.
il problema è definire tu da script il nome del file di destinazione e non passarlo come parametro altrimenti appena scopro l'url della tua pagina faccio uno script di questo tipo:
for ($i=0;$i<10000;$i++)
pagina.php?destinazione=$i;
URL
(Uniform Resource Locator) è un indirizzo di una risorsa in Internet
PHP
E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche
File_exists
file_exists è una funzione di PHP che verifica l'esistenza del file passato come argomento.
i parametri li passo via url però ho fatto questo controllo.
ottengo il nome del file che tu vuoi usare per creare l'anteprima nel mio server, controllo che questo file sia sul MIO spazio.
Se così non è non ti creo la preview.
Al massimo qualcuno potrebbe divertirsi e farmi creare le anteprima di tutte le foto presenti nel mio sito. Magari in continuazione...
Mmmm, brutta cosa.
Cosa succede se dico al server di creare la stessa immagine che già esiste?
URL
(Uniform Resource Locator) è un indirizzo di una risorsa in Internet
Server
Ogni coppia hardware-software che fornisce appunto servizi ad utenti chiamati tradizionalmente clienti (clients) attraverso una rete.