Copia file da Windows a Linux

Discussione in 'PHP' iniziata da Dante1991, 20 Dicembre 2010.

  1. Dante1991

    Dante1991 Nuovo Utente

    Registrato:
    20 Dicembre 2010
    Messaggi:
    5
    Mi Piace Ricevuti:
    0
    Punteggio:
    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.
     
  2. Eliox

    Eliox Utente Attivo

    Registrato:
    25 Febbraio 2005
    Messaggi:
    4.390
    Mi Piace Ricevuti:
    3
    Punteggio:
    0
  3. Dante1991

    Dante1991 Nuovo Utente

    Registrato:
    20 Dicembre 2010
    Messaggi:
    5
    Mi Piace Ricevuti:
    0
    Punteggio:
    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:// ...
     
  4. alessandro1997

    alessandro1997 Utente Attivo

    Registrato:
    6 Ottobre 2009
    Messaggi:
    5.304
    Mi Piace Ricevuti:
    1
    Punteggio:
    0
    Occupazione:
    Studente
    Località:
    Roma
    Home Page:
    Questa classe sembra fare al caso tuo. Ti consiglio di dargli un'occhiata.
     
  5. Dante1991

    Dante1991 Nuovo Utente

    Registrato:
    20 Dicembre 2010
    Messaggi:
    5
    Mi Piace Ricevuti:
    0
    Punteggio:
    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?
     
  6. alessandro1997

    alessandro1997 Utente Attivo

    Registrato:
    6 Ottobre 2009
    Messaggi:
    5.304
    Mi Piace Ricevuti:
    1
    Punteggio:
    0
    Occupazione:
    Studente
    Località:
    Roma
    Home Page:
    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.
     
  7. Dante1991

    Dante1991 Nuovo Utente

    Registrato:
    20 Dicembre 2010
    Messaggi:
    5
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Quoto dalla descrizione
    Quindi nella classe è implementata qualche funzione per leggere i file. Il problema è capire quale... Non c'è un minimo di documentazione.
     
  8. alessandro1997

    alessandro1997 Utente Attivo

    Registrato:
    6 Ottobre 2009
    Messaggi:
    5.304
    Mi Piace Ricevuti:
    1
    Punteggio:
    0
    Occupazione:
    Studente
    Località:
    Roma
    Home Page:
    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.
     
  9. Dante1991

    Dante1991 Nuovo Utente

    Registrato:
    20 Dicembre 2010
    Messaggi:
    5
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    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!
     
  10. alessandro1997

    alessandro1997 Utente Attivo

    Registrato:
    6 Ottobre 2009
    Messaggi:
    5.304
    Mi Piace Ricevuti:
    1
    Punteggio:
    0
    Occupazione:
    Studente
    Località:
    Roma
    Home Page:
    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 :)
     
Sto caricando...

Condividi questa Pagina