Newsgroup: it.comp.www.php
Titolo: Clessidra o pagina di attesa in upload

Ciao a tutti,
ho un sito dove devo far effettuare agli utenti l'upload dei file.
Tutto funziona, però quando il file è grosso e l'utente rimane in attesa
sembra che la pagina sia morta finchè il download non è completato e
appare la pagina PHP.
C'è un modo per mettere, che s,o una clessidra o visualizzare un ATTENDERE
PREGO  finchè il download non è completato?
Grazie a chi mi darà una dritta
Ciao
Questo è il codice della pagina HTML per il submit del file
////////////////////////////////
<form enctype="multipart/form-data" action="upload.php" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
    <!-- Name of input element determines name in $_FILES array -->
    Invia questo file: <input name="userfile" type="file" />
   <BR> <input type="submit" value="Invia File" />
</form>
Questo è il codice della pagina PHP corrispondente
///////////////////////////////////////////////////////////////////
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY background="column-bg.gif" link="#000000" vlink="#000080"
alink="#0000FF"><BR><BR><BR><BR><BR>
<?php
if (!isset($_FILES['userfile']))
{
echo '<pre>';
echo "<H3><CENTER>Si è verificato un problema nella procedura di
upload<BR><BR>Si prega di riprovare più tardi";
}
else{
$uploaddir = '../../uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
   echo "<CENTER><H2>IL FILE E' STATO CORRETTAMENTE UPLOADATO.\n";
} else {
   echo "<CENTER><H2>SI SONO VERIFICATI PROBLEMI DURANTE L'UPLOAD DEL
FILE!\n";
}
//echo 'Valore di ritorno:' . $_FILES['userfile']['error'];
if($_FILES['userfile']['error']==0)
{
echo "<H4>Nessun errore";
}
if($_FILES['userfile']['error']==1)
{
echo "<H4>Errore 1 - Il file eccede le dimensioni massime permesse dal
server";
}
if($_FILES['userfile']['error']==2)
{
echo "<H4>Errore 2 - Il file eccede le dimensioni massime stabilite nel
form";
}
if($_FILES['userfile']['error']==3)
{
echo "<H4>Errore 3 - Upload eseguito parzialmente";
}
if($_FILES['userfile']['error']==4)
{
echo "<H4>Errore 4 - Nessun file è stato inviato";
}
}
}
?> 
<BR><BR><BR>
<a target="inferioredx" href="upload.html"><img border="0" src="up.gif"</a
width="53" height="35"></a> &nbsp <a target="inferioredx"
href="down.htm"><img border="0" src="home.gif"</a width="53"
height="35"></a>
</BODY>
</HTML>
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ATTENDERE PREGO  finchè il download non è completato?
No a meno di compilare il PHP con una patch o usare Perl  (es. con
MegaUpload) od un altro linguaggio lato server che lo permetta.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 MegaUpload) od un altro linguaggio lato server che lo permetta.
Peccato  :-(
Ti ringrazio per la gentile risposta.
Ciao


 MegaUpload) od un altro linguaggio lato server che lo permetta. 
o utilizzare una libreria come xajax.
--
kain
icoretech.org

 o utilizzare una libreria come xajax.
Posta un riferimento nella documentazione xajax dove si parla di
effettuare l'upload di file, grazie.
-- 
I am what I am, I do what I can


 effettuare l'upload di file, grazie.
Sinceramente non ho provato, ma non vedo perchè mai sia necessario usare  
xajax o patch varie ed eventuali.
Non ha chiesto una barra a riempimento, ne una percentuale di  
completamento, solo di visualizzare un messaggio 'attendere prego'.  
Dovrebbe essere fattibile in modo banale, con un div nascosto ed un po' di  
javascript sull'on submit.
Tac
-- 
La netiquette prevede sign di al massimo quattro righe.
Purtroppo la mia sign in quattro righe non ci stà.

</HTML>
non ho provato il codice, ma l'idea è quella.
-- 
Finche' ti morde il lupo, pazienza.
Quel che secca e' quando ti morde la pecora

 flush(); 		//correggetemi se sbaglio
Non puo' funzionare perche' il PHP interpreta lo script PHP solo al
termine dell'invio dei dati, NON prima.


termine dell'invio dei dati, NON prima.
scusa, questa non l'ho capita
intendi dire al termine dell'upload? 
o sennò non capisco a quale invio di dati ti riferisci.


 
non vedo perché debba esserci nella documentazione, anyway:
http://www.modphp.org/sutra664.php#664
http://www.modphp.org/upload2/
hai mai usato xajax?
oltretutto questo è un modo complicato, semplicemente si può costruire 
una paginetta che prima di effettuare l'upload sostituisce del codice in 
un div con innerHTML.
ciao
--
kain
icoretech.org

 intendi dire al termine dell'upload? 
Al termine dell'invio del flusso dati HTTP.


 
http://www.modphp.org/upload2/
[quoto 
http://www.modphp.org/sutra664.php#664
]
Source of the patches are here: 
[/quoto]
Come gia' detto, no a meno di compilare il PHP con una patch (quella da
te indicata per l'appunto).


 te indicata per l'appunto).
ma sgrat sgrat, lessi male e hai ragione..
piů tardi provo a vedere se č possibile almeno piazzarci un "please 
wait" da qualche parte, via template, ajax, js o qualsivoglia, echecazz
--
kain
icoretech.org

 effettuare l'upload di file, grazie.
Magari questo puň essere utile:
http://www.modphp.org/sutra664.php#664
(mai provato e richiede una patch.)
Perň quasi tutte le librerie ajax hanno un sistema per fare il submit
dei form, perché in questo caso non dovrebbe andare bene?
Basta fare sull'onSubmit un cambio cursore, far apparire un
div, uno span, un layer, un quelchetipare e poi fare il submit.
Ma anzi, pure senza ajax, eh... č perň un problema di javascript,
quindi sono OT.
-- 
ValeRyo 

 dei form, perché in questo caso non dovrebbe andare bene?
Perche' se fosse possibile fare l'upload tramite ajax/JS allora un
qualsiasi sito sarebbe in grado di leggersi tutto il contenuto dell'HD
dell'utente. E' lo stesso motivo per cui NON e' possibile valorizzare i
campi di tipo file delle form tramite JS/HTML.


Devi usare ajax , invii e con un function js controlli se il file è 
presente nel server chiamando php attraverso la function js, è un po 
complicato ma non credo ci sia altro .... chessò aprire una finestra 
accessoria che controlla l'arrivo del file e poi comunica l'esito.

 Devi usare ajax , 
Per favore, posta il link di un codice ajax/js che permetta di fare
l'upload di file.
P.S.
Per favore, quota decentemente.


 Grazie a chi mi darà una dritta
Si, è possibile:
http://www.grana.to/upload/con_span.php
http://www.grana.to/upload/con_layer.php
i sorgenti li trovi qui, ma comunque l'attesa è fatta in javascript e
non in php:
http://www.grana.to/upload/con_span.phps
http://www.grana.to/upload/con_layer.phps
Attento che è buttato giù al volo, non garantisco il funzionamento
cross-browser né cross-server :-)
-- 
ValeRyo 

 i campi di tipo file delle form tramite JS/HTML.
Insomma, basterebbe non consertirne la valorizzazione.
Comunque non sono ancora convinto che non ci sia un modo per farlo
o almeno per simularlo, magari utilizzando un iframe come target del 
form
e, ad upload completato, 'avvisare' la pagina principale che con ajax va 
a
prendersi le info sul file uploadato.
Se avrò tempo per studiare la cosa pubblicherò qui i risultati.
-- 
ValeRyo