Benvenuto Visitatore ( Log In | Registrati )
![]() ![]() |
1 Nov 2005, 10:11
Messaggio
#1
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
Ciao, vorrei sapere se esiste uno script in php che mi permetta di inviare, da un browser, un file di grosse dimensioni tramite il protocollo ftp.
Tutti gli script php che ho provato funzionano ma, non iviano file superiori 1Mb!! Dopo alcune ricerche ho capito il motivo, è dovuto al mio provider (Aruba) che ha impostato un Timeout, nei loro server, molto breve e NON è modificabile. Quindi per ovviare a questo problema pensavo al protocollo ftp. Però, non essendo esperto in programmazione mi piacerebbe trovare uno script che mi permetta di cambiare solo i parametri personali senza toccare nient'altro. Facendo una ricerca sul forum ho trovato qualcosa di simile http://forum.tevac.com/viewtopic.php?t=164...ighlight=upload specialmente alla riga: CITAZIONE(djzero00) ho un altro passettino, dopo aver scoperto quella sorta di applicazione che è URL Access Scripting (c'è un dizionario dove appunto ci sono i comandi upload e download) CODICE --set file2up to "percorso:al:mio:file.ext" as alias -- per provare lo piglio direttamente set file2up to choose file set ftpserv to "ftp://login:pass@ftp.rossoalice.it/" tell application "URL Access Scripting" upload file2up to ftpserv without binhexing end tell Alcune osservazioni: 1. sono diventato idrofobo, poi ho messo l'ultimo slash del path ftpserv. 2. si può togliere login e password dallo URL, e chiederle tramite dialogo: CODICE upload file2up to ftpserv with authentication without binhexing 3. di default, upload "binhexa" il file, cosa che potrebbe non essere gradita; da qui, la presenza di "without binhexing". 4. se nel server ftp occorre raggiungere cartelle particolari, si possono indicare direttamente: ad esempio CODICE set ftpserv to "ftp://login:pass@ftp.rossoalice.it/path/della/cartella/" mi raccomando l'ultimo slash. potrebbe fare il mio caso? Seconda cosa. Sicurezza. Se inserisco nello script php il mio nome utente e password, una persona qualunque potrebbe scaricarsi o leggere il file e quindi sapere i miei dati? Grazie |
|
|
|
|
|
|
2 Nov 2005, 14:50
Messaggio
#2
|
|
|
CITAZIONE(kop) potrebbe fare il mio caso?
Su questo e' meglio se ti risponde qualcun altro, in merito non ho esperienza. CITAZIONE(kop) Se inserisco nello script php il mio nome utente e password, una persona qualunque potrebbe scaricarsi o leggere il file e quindi sapere i miei dati?
Sni'. Mi spiego meglio: leggere il testo contenuto in un file .php attraverso il browser NON e' possibile in quanto il contenuto e' "parsato". E' vero pero' che se in qualche modo uno ottiene il modo di accedere il file in qualche altro modo allora avra' in chiaro login e password. E' un rischio abbastanza remoto ma possibile. Ciao, Roberto -------------------- |
|
|
|
|
2 Nov 2005, 15:05
Messaggio
#3
|
|
|
Guarda, non sono sicuro che sia aruba, o meglio forse il timeout e' stato impostato sull'interprete php, visto che il mio script per l'upload (scritto in python) sul mio dominio aruba funziona anche con file da +200mb.
Io posso passarti lo script python se ti interessa e' molto semplice, ma non so aiutarti con l'altro problema. -------------------- |
|
|
|
|
2 Nov 2005, 15:15
Messaggio
#4
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
CITAZIONE(whamoo) Guarda, non sono sicuro che sia aruba, o meglio forse il timeout e' stato impostato sull'interprete php
Questo non lo so! Sinceramente, era l'unica spiegazione che mi davo sul mancato funzionamento per file >1Mb, facendo una ricerca sul forum di aruba veniva citata questa problematica, che non capendo niente di php l'ho presa per buona. CITAZIONE(whamoo) sul mio dominio aruba funziona anche con file da +200mb.
Io posso passarti lo script python se ti interessa e' molto semplice, ma non so aiutarti con l'altro problema. MAGARI!!!! Grazie |
|
|
|
3 Nov 2005, 01:31
Messaggio
#5
|
|
|
Crea un file ftp.py e mettilo nella cartella cgi-bin del tuo sito: (guarda il codice perche' devi mettere dei path relativi al tuo sito)
CODICE import cgi import sys import os print "content-type: text/html" # Metti qui user e password che vuoi auth = {'USER':'PASSWORD'} store = cgi.FieldStorage() user = store.getvalue('user', None) pwd = store.getvalue('pwd', None) if auth.has_key(user): if auth[user] != pwd: print "Sorry your name/password are incorrect" sys.exit() else: print "Sorry your name/password are incorrect" sys.exit() storeItem = store['fupload'] if storeItem.file: name = storeItem.filename name = name.replace(" ", "") name = os.path.split(name)[1] data = storeItem.file.read() try: # Qui metti la cartella dove vuoi che il file venga messo # io ho scelto un cartella prima di cgi-bin di nome upload path = "../upload/" + name file = open(path, 'w') file.write(data) file.close() print "Upload succesfull<br><br>" # Qui metti il path totale di dove metti i file pathuman = "http://www.rknet.it/upload/" + name print "Path to the file is: <a href="" + pathuman + "">" + pathuman +"</a>" except: print "Error" Mi raccomando controlla tutti i punti in cui devi cambiare il codice!!! Poi crea un file html con il form per l'upload, in questo modo: HTML <form method="post" action="cgi-bin/ftp.py" enctype="multipart/form-data"> <input name="user" value="user" type="text" size="30"><br> <input name="pwd" value="password" type="text" size="30"><br> <input name="submit" type="submit" value="invia"> <input name="fupload" type="file"> </form> Se qualcosa non dovesse andare fammi sapere -------------------- |
|
|
|
|
3 Nov 2005, 19:34
Messaggio
#6
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
Niente!!! Errore:
500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, postmaster@xxxxx.it and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Leggendo i log dal server di aruba, questi sono gli errori che vengono generati: [Thu Nov 03 18:20:41 2005] [error] [client xx.x.xxx.xxx] File does not exist: /web/htdocs/www.xxxxx.it/home/favicon.ico [Thu Nov 03 18:20:41 2005] [error] [client xx.x.xxx.xxx] File does not exist: /web/htdocs/www.xxxxx.it/home/favicon.ico [Thu Nov 03 18:20:50 2005] [error] [client xx.x.xxx.xxx] Premature end of script headers: ftp.py, referer: http://www.xxxxx.it/upload.htm [Thu Nov 03 18:20:50 2005] [error] [client xx.x.xxx.xxx] File does not exist: /web/htdocs/www.xxxxx.it/home/favicon.ico Non capisco cosa sia il file: favicon.ico I permessi sono tutti 777, per la cronaca il sito ospitato nei server Linux. PS: xxxxx sono i dati che ho sostituito ora per questa visualizzazione. |
|
|
|
3 Nov 2005, 19:48
Messaggio
#7
|
|
|
Allora, vediamo se rivolviamo:
Intanto i permessi dei cgi devono essere 755 e non 777 Prova a cambiare la prima riga con questa: #!/usr/bin/env python Controlla di avere messo tutti i cambi da cambiare, e attento in python conta l'indentazione, quindi devi creare il file esattamente come l'ho postato, non devi ciccare uno spazio.... Appena ho tempo ti metto lo script con una pagina di esempio in un bel .zip cosi' non devi copia/incollare. Saluti -------------------- |
|
|
|
|
3 Nov 2005, 20:12
Messaggio
#8
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
Niente, uguale a prima.
Secondo me potrebbe essere dreamweaver il problema!! Ora provo con BBEdit salvando per Unix. I permessi li ho riportati a 755 |
|
|
|
3 Nov 2005, 22:32
Messaggio
#9
|
|
|
Il file favicon.ico è quello che contiene l'iconcina che vedi nella barra degli indirizzi accanto all'URL.
Non è obbligatorio che ci sia, ma visto che ormai quasi tutti i browser lo richiedono, potresti metterlo. Almeno eviti di infestarti il log con errori che non esistono. Ti basta creare un file BMP 16 pixel x 16 pixel, rinominarlo in favicon.ico e metterlo nella root del sito. Ciao Paolo -------------------- |
|
|
|
|
20 Nov 2005, 10:50
Messaggio
#10
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
Grazie poweruser risolto il problema favicon.ico.
Dopo IMMANI fatiche ho trovato uno script che si adatta alle mie esigenze: upload_ftp.htm HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Upload di file</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head> <body> <center> <font color="#333333"><b>Upload file via FTP</b></font><br> <br> <table width="400"> <tr> <td><table border="0" align="center" cellpadding="5" cellspacing="0"> <form enctype="multipart/form-data" method="post" action="upload_ftp.php"> <tr> <td colspan="2"><font face="arial" size="2">File</font> <input type="file" name="fupload"></td> </tr> <tr> <td colspan="2" align="center"><input name="submit" type="submit" value="Spedisci"> <input name="reset" type="reset" value="Annulla"> </form> </table></td> </tr> </table> <p> </p> </center> </body> </html> upload_ftp.php CODICE <div align="center"> <p><span class="formNORMAL"> </span> <?php foreach($HTTP_POST_VARS as $key=>$val) { if($val=="" or !$val) { print "<font face="Verdana" size="2">Il campo $key è vuoto<br><a href="java script:history.back()">indietro</a></font>"; exit(); } } //parametri da personalizzare $host="ftp.miosito.it"; $porta="21"; $username="miausername@aruba.it"; $password="miapassword"; // fine parametri da personalizzare $ftp_connect=@ftp_connect($host,$porta); if(!$ftp_connect) { print "<font face="Verdana" size="2">Connessione fallita al server $host<br><a href="java script:history.back()">indietro</a></font>"; exit(); } $ftp_login=@ftp_login($ftp_connect,$username,$password); if(!$ftp_login) { print "<font face="Verdana" size="2">Login fallito<br><a href="java script:history.back()">indietro</a></font>"; exit(); } //copia il file da inviare $fp=@fopen($fupload,"r"); if(!$fp) { print "<font face="Verdana" size="2">Impossibile aprire il file selezionato<br><a href="java script:history.back()">indietro</a></font>"; exit(); } //lo spedisce via ftp nella cartella "file" o altra basta cambiare nome in: $ftp_connect,"file/$fupload_name" @ftp_fput($ftp_connect,"file/$fupload_name",$fp,FTP_BINARY) or die("<font face="arial" size="2">Impossibile spedire il file<br><a href="java script:history.back()">indietro</a></font>"); echo "<font face="arial" size="2">Il file $fupload_name, peso $fupload_size, è stato uploadato con successo</font>"; fclose($fp); ftp_quit($ftp_connect); ?> </p> <p> </p> </div> FUNZIONA!!! Miracolo!!! Solo che..... Solo che, alla fine dell'invio compare il messaggio: HTTP 500 - Errore interno del server però, se vado a controllare nella cartella dove è stato spedito il file, questo c'è senza nessun errore. Il problema è se uno mi spedisce un file e poi alla fine viene generato questo errore lui è convinto di non aver spedito un bel niente (oltre aver perso tempo) cosa completamente falsa in quanto il file è regolarmente arrivato!! Problema di TimeOut? E, se SI, come si risolve? Se NO.... ideee? |
|
|
|
23 Jan 2006, 15:13
Messaggio
#11
|
|
|
Level 1/11 ![]() Gruppo: Members Messaggi: 1 Iscritto il: 19-January 06 Utente Nr.: 5.196 |
Scusate, ma io non riesco ancora a spedire più di 1 MB con FORM UPLOAD su ARUBA, siccome ho letto che qualcuno ci è riuscito, ma come dite non ci riesco, qualcuno può aiutarmi???
Grazie |
|
|
|
23 Jan 2006, 15:29
Messaggio
#12
|
|
|
Level 2/11 ![]() ![]() Gruppo: Forum User Messaggi: 95 Iscritto il: 31-December 03 Da: Udine Utente Nr.: 1.198 |
Io sono riuscito (anche se NON dipende da me!!) fino a 10Mb!!
Ma per ora.... ci ho rinunciato!! Mi sembra assurdo che non si possa inviare con un semplice form da un sito file superiori ad una certa dimensione (10Mb???) senza complicarsi la vita oppure, se è possibile.... è un "casino"!!! Perchè le cose non sono più semplici??? |
|
|
|
23 Jan 2006, 15:35
Messaggio
#13
|
|
|
CITAZIONE(kop) Io sono riuscito (anche se NON dipende da me!!) fino a 10Mb!!
Perché altrimenti tutti potrebbero inviarti file enormi senza che tu ne abbia alcun controllo esaurendo lo spazio disponibile sul server.
Ma per ora.... ci ho rinunciato!! Mi sembra assurdo che non si possa inviare con un semplice form da un sito file superiori ad una certa dimensione (10Mb???) senza complicarsi la vita oppure, se è possibile.... è un "casino"!!! Perchè le cose non sono più semplici??? Ciao Paolo -------------------- |
|
|
|
|
8 Apr 2008, 12:22
Messaggio
#14
|
|
|
Level 1/11 ![]() Gruppo: Forum User Messaggi: 1 Iscritto il: 8-April 08 Utente Nr.: 10.121 |
ciao a tutti sono nuovo da questa parte...
vorrei un aiuto... non riesco a fare funzionare lo script di whamoo e visto che mi serve un upload per file da 80/100 mb su server Aruba spero che lui mi possa aiutare! grazie! |
|
|
|
1 May 2008, 11:31
Messaggio
#15
|
|
|
Intanto spiegaci cosa non funziona esattamente e che errori ti dà.
Benvenuto. Ciao Paolo -------------------- |
|
|
|
|
![]() ![]() |
| Titolo discussione | Risposte | Autore discussione | Visite | Ultima azione | ||
|---|---|---|---|---|---|---|
![]() |
4 | sirguich_ | 56 | 4 September 2008 - 18:43 Ultimo messaggio di: sirguich_ |
||
![]() |
14 | preglia | 166 | 4 September 2008 - 17:26 Ultimo messaggio di: sirguich_ |
||
![]() |
3 | genilli | 99 | 1 September 2008 - 23:32 Ultimo messaggio di: sirguich_ |
||
![]() |
3 | Geyser | 74 | 29 August 2008 - 13:38 Ultimo messaggio di: Martini |
||
![]() |
3 | bacillino80 | 103 | 29 August 2008 - 11:37 Ultimo messaggio di: bacillino80 |
||
![]() |
0 | Marco Coïsson | 58 | 19 August 2008 - 10:12 Ultimo messaggio di: Marco Coïsson |
||
![]() |
2 | giordano | 82 | 14 August 2008 - 16:53 Ultimo messaggio di: giordano |
||
![]() |
4 | borros | 99 | 7 August 2008 - 14:08 Ultimo messaggio di: borros |
||
![]() |
3 | -plume- | 102 | 30 July 2008 - 15:59 Ultimo messaggio di: poweruser |
||
![]() |