PDA

Visualizza la versione completa : FTP - Upload


Supercolore
24-01-2008, 15:48
Ciao!
Ho un file (immagine JPG) che risiede su un sito http://www.miosito1.com/foto/blog_eff.JPG.
Voglio che questo file sia trasferito tramite script CGI via FTP sul sito http://www.miosito2.com/prova e ovviamente con lo stesso nome della foto "blog_eff.JPG".

Ho provato a fare lo script che segue, non da alcun errore, tuttavia non trasferisce nulla!:-s
Come mai?
Qualcuno mi sa aiutare?

Grazieeeeeee!
Ciaoooooooooooo!


#!/usr/bin/perl -w
use CGI qw(:standard);
use Net::FTP;

$from = 'blog_eff.JPG';
#nome dell'immagine sul sito su cui risiede, cioè miosito1 e DA CUI deve essere trasferita
#su miosito2

$to = 'http://www.miosito2.com/prova/blog_eff.JPG';
#dove voglio venga salvata su miosito2 l'immagine e ovviamente il nome della foto

$ftp = Net::FTP->new("ftp.miosito2.com", Debug=>1, Timeout=>240);
# miosito2 è il sito su cui deve essere trasferito il file (.jpg)

$ftp->login("miallogin", "miapassword"); #notare che la login che ho è un email

$ftp->cwd("../foto");
#cartella "foto" nel quale si trova l'immagine da trasferire. Ovviamente lo script essendo
#eseguito nella cartella cgi-bin ha bisogno deve tornare indietro "../" per amdare in "foto"

$ftp->put($from, $to);


$ftp->quit;


print header;
print"trasferito";

Mich_
24-01-2008, 16:19
Premetto che non ho mai fatto trasferimenti FTP automatici, ma qualche consiglio posso dartelo.
Non ho capito su quale server gira il CGI. Suppongo sia sulla macchina che deve ricevere il file.

Mi par di capire che il tuo script sia un CGI scritto in PERL.

I CGI devono sottostare ad una serie di vincoli di permessi, altrimenti chiunque potrebbe andare a modificare tutto sul server e ti troveresti impestato di virus e troiani vari nel giro di pochi minuti.
Nei CGI ci sono diverse cartelle in gioco:
- cartella in cui e` presente il CGI
- cartella dati (ad esempio dove sta il database)
- sito Web che puo` chiamare il CGI

E ci sono in ballo varie permission:
- permesso di eseguire un eseguibile (nella cartella del CGI)
- permesso di leggere e scrivere (ma non eseguire) da parte dell'utente sotto cui gira il CGI (sulla cartella dei dati)
- permesso di leggere da una selezione di altre cartelle (ma non tutte quelle del server)

Ora mi pare dalla tua domanda che non hai chiaro tutto cio`.
Altre info (piu` dettagliate) le puoi trovare sul sito di shishii.

shishii
27-01-2008, 09:46
oltre a ciò non mi convincono i contenuti delle variabili $from e $to. la prima va bene solo se l'immagine da trasferire è nella stessa directory dello script, la seconda è certamente sbagliata in quanto devi usare un path e non un URL.

Supercolore
28-01-2008, 02:33
Io stò tentando di fare una cosa:
l'utente mi carica una immagine su un mio sito (indirizzo1.com) e successivamente la voglio trasferire su un altro mio sito (indirizzo2.com). Sono due siti k risiedono su server distinti e non di mia proprietà (in poke parole.. spazio ke ho acquistato su un mantainer assieme ai domini)!
Pensavo k il trasferimento via ftp tramite cgi facesse al caso mio..
No?

shishii
29-01-2008, 00:29
non è per nulla scontato, dato che ftp opera su porte completamente diverse (20 e 21) da quelle di http (80) e per le quali il tuo utente potrebbe non avere i permessi.

Supercolore
29-01-2008, 02:04
Si ma l'utente carica la foto sul sito1. Poi il cgi si occupa di fare l'ftp, e di trasferire su sito2 l'immagine che ha appena caricato su sito1.
Non capisco.. i permessi non glieli si possono dare già via cgi?

shishii
29-01-2008, 21:47
Originariamente inviato da Supercolore
Non capisco.. i permessi non glieli si possono dare già via cgi?

certo che non puoi! se tramite CGI che gira sotto i permessi del webserver si potessero modificare i permessi, tutta internet sarebbe un buco!

Supercolore
30-01-2008, 03:15
Pensavo bastasse la login e la pwd con la quale accedo ai due siti tramite ftp!..
Ehh.. ma allora come posso fare a far trasferire in modo automatico dei file ?
L'utente me li mette sul sito1, io poi ho necessità di mettermeli su sito2...

Loading