Visualizzazione dei risultati da 1 a 9 su 9

Discussione: File copy php

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    9

    File copy php

    Salve.
    Avrei bisogno di capire come deve essere la sintassi corretta per fare una copia di un file mediante comando PHP.
    Il comando è il seguente :

    if (!copy($_FILES['per']['tmp_name'],"\\172.30.25.50\DIR\".$_POST['ID']."\".nomefile_pulito($_FILES['per']['name']))

    Il comando funziona correttamente quando la costante, evidenziata in ROSSO è del tipo "C:\DIR\".
    Quando invece metto un indirizzo IP, come nella parte in ROSSO, il comando COPY non funziona più
    e da l'errore :
    COPY ERROR: 2 copy(\172.30.25.50\DIR\_6\_dati_form.php) [function.copy]: failed to open stream: No such file or directory

    Potete darmi una mano ????
    Grazie
    Rolando

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dove sta lo script e dove sta la cartella in questione?
    Potrebbe anche essere che il server sia impostato per non ammettere l'uso di URL per il comando copy

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    9

    FILE COPY in PHP

    Lo script sta su di un PC che fa da server e la cartella in questione sullo stesso PC. Funzionava il tutto prima di mettere l'indirizzo IP. Ho messo l'indirizzo IP in quanto devo, dopo queste ultime prove, mettere il tutto in funzione in una rete Intranet. Vorrei poi mettere la cartella su di un NAS. Se fosse che il server non ammette l'uso di URL, come faccio a verificare e modificare ?
    Ringrazio per la risposta che però ho visto adesso.
    Fatemi sapere ..... grazie
    Rolando

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Forse ci vuole il doppio \ prima dell'IP (se noti nel messaggio di errore ne sparisce uno, mettine 3 nel copy)
    La cartella è condivisa?
    Ultima modifica di clasku; 14-09-2014 a 22:20

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    9
    Su quella cartella già ho provato e ci scrivevo mettendo C:\DIR\.
    Mettendo l'indirizzo IP anche con il doppio \\ non funziona.
    Ho visto sul sito PHP che per mettere un indirizzo URL bisogna scrivere una fopen() ma non ho capito come fare !
    <?php
    $file
    = 'example.txt';
    $newfile = 'example.txt.bak';

    $file = 'example.txt';
    $newfile = 'example.txt.bak';

    if (!
    copy($file, $newfile)) {
    echo
    "Copia di $file non riuscita ...\n";
    }
    ?>



    Nota:
    Come da PHP 4.3.0, sia source che dest potrebbero essere URL se "fopen wrappers" è stato abilitato. Vedere fopen() per ulteriori dettagli. Se il parametro dest punta ad un URL, l'operazione di copia potrebbe fallire se il wrapper non supporta la sovrascrittura di file esistenti.

    AIUTO !!!!!!!

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Non funziona significa che anche scrivendo copy($filename, "\\\172.x.x.x\cartella\$nuovofilename") ti da sempre lo stesso errore?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    9
    Ora non posso riprovare in quanto sono a casa e non posso simulare la rete intranet che ho a lavoro.
    Domani provo e poi ti saprò dire.
    Grazie per ora
    Rolando

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Una domanda. Sull'intranet c'è sempre un DOCUMENT_ROOT ? No ?

    Codice PHP:
    <?php 
    if (isset($_FILES['per']['tmp_name'])) {
      
    $tempFile $_FILES['per']['tmp_name'];
     
    $toFile   $_SERVER["DOCUMENT_ROOT"]."/tests/my_pippo.txt";
      
    copy($tempFile,$toFile);
    }
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    9
    Ringrazio tutti per aver cercato di risolvere il mio problema.
    Dopo numerosi tentativi con doppi, tripli slash o back slash ecc. ecc. ho notato che scrivendo il nome del server anzichè l'indirizzo IP ha funzionato improvvisamente. Penso che sia stato quello anche se non ne sono certo in quanto avevo anche introdotto altri comandi quali :

    $directory="//Nascdc355c/registri_non_conformita_e_reclami/DOCUMENTI_NC_DIPARTIMENTALI/".$_POST['ID'].'/';
    $handle = fopen($directory, "w+");
    if ($numerr == 0)
    {
    if (!is_dir("//Nascdc355c/registri_non_conformita_e_reclami/DOCUMENTI_NC_DIPARTIMENTALI/".$_POST['ID'].'/'))
    {
    // se non esiste quella cartella la crea
    if (mkdir(($directory),0777))
    {}
    }
    if (!copy($_FILES['per']['tmp_name'],"//Nascdc355c/registri_non_conformita_e_reclami/DOCUMENTI_NC_DIPARTIMENTALI/".$_POST['ID']."/".nomefile_pulito($_FILES['per']['name'])))

    Così comunque funziona alla grande !!! Crea delle cartelle se non presenti e copia i documenti in quelle cartelle sul server.
    Grazie a tutti.
    Ciao
    Rolando

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.