Copia file da Windows a Linux

Dante1991

Nuovo Utente
20 Dic 2010
5
0
0
Salve.
Il mio problema è scrivere un script in grado di copiare un file da un server windows ad un server Linux (nello specifico Ubuntu), dove è installato apache.

I due pc sono collocati nella stessa rete lan, e il file è raggiungibile solamente tramite un percorso di tipo smb:// protetto da password.

Qualcuno è in grado di aiutarmi?
Sono gradite anche soluzioni alternative.
Ringrazio anticipatamente.
 

Dante1991

Nuovo Utente
20 Dic 2010
5
0
0
Php, ma posso usare anche la funzione exec() per mandare un comando al terminale come "cp".

Il problema è che non riesco a fargli accettare il percorso di tipo smb:// ...
 

Dante1991

Nuovo Utente
20 Dic 2010
5
0
0
In effetti sembra proprio ciò che mi serve.

E' un pò scarna di documentazione però questa classe :pernacchi

Ho un pò di difficoltà nell'usarla, sapete aiutarmi?
 

Dante1991

Nuovo Utente
20 Dic 2010
5
0
0
Non sono sicuro di aver capito bene, ma mi sembra di leggere che in realtà non sia necessario usare direttamente la classe. Devi solamente includerla nel tuo script e poi potrai accedere tranquillamente agli URL smb:// tramite le funzioni della libreria stream.
Quoto dalla descrizione
The class implements functions to create, read and write to files available in the local network shares.
Quindi nella classe è implementata qualche funzione per leggere i file. Il problema è capire quale... Non c'è un minimo di documentazione.
 

Dante1991

Nuovo Utente
20 Dic 2010
5
0
0
Ripeto: prova ad accedere all'URL come faresti normalmente con le funzioni per la manipolazione dei file (fopen, fwrite, fgets) e vedi se funziona. Io, purtroppo, non posso testare la classe, quindi dovrai necessariamente farlo tu.
Incredibile, ma vero, funziona!

Non mi spiego ancora a livello tecnico come possa essere possibile, dato la classe non ri-implementa nessun metodo già esistente, ne c'è la necessita dichiarare un oggetto appartenente ad essa per il suo utilizzo. Insomma, a prima vista è un utilizzo totalmente trasparente, mi è bastato semplicemente includere la classe nel mio script e usare la semplicissima funzione copy con il percorso smb://.


Grazie mille!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.303
1
0
22
Roma
alessandro1997.netsons.org
Se ti interessa, la magia sta tutta in questa riga:
PHP:
stream_wrapper_register('smb', 'smb_stream_wrapper') or die ('Failed to register protocol');
Che praticamente registra il wrapper per gli URL di tipo smb. Con questo sistema puoi gestire un tipo illimitato di protocolli, semplicemente registrando il relativo wrapper :)