Avatar billede Rune1983 Ekspert
16. juni 2017 - 11:52 Der er 8 kommentarer og
1 løsning

Kopiere fil med PHP fra en Synology NAS til anden Synology NAS på samme LAN

Kopiere fil med PHP fra en Synology NAS til anden Synology NAS på samme LAN

Overskriften siger det hele.
Kæmper lidt med at finde en løsning.
Avatar billede Rune1983 Ekspert
16. juni 2017 - 12:01 #1
Filen jeg skal kopiere ligger i en shared folder.
Avatar billede Rune1983 Ekspert
16. juni 2017 - 12:02 #2
Og der er bruger rettighed på.
Skal jeg ud i noget FTP i PHP. Og hvis hvordan takler jeg det?
Avatar billede Slater Ekspert
16. juni 2017 - 12:17 #3
Ifølge PHP's manual burde du kunne tilgå samba shares med almindelig PHP - det skulle være indbygget: http://www.php.net/manual/en/wrappers.file.php - Jeg har dog lige prøvet det selv, og kunne ikke få den til det.

Ellers findes der f.eks. dette: https://github.com/eduardok/libsmbclient-php - som også skulle give mulighed for det. Jeg har dog ikke prøvet selv.
Avatar billede acore Ekspert
16. juni 2017 - 13:23 #4
Måske er problemet, at php ikke har rettigheder til at læse/skrive.

Koden burde være simpel:

if (copy($fromfile, $tofile))
  echo("Yes we can!");

Hvis det ikke virker - hvilken fejl får du? Hvad skriver du af filnavne? Der kan være noget med mapping. Hvad står der httpd.conf? Brugeren der skal have adgang. Bare et var vildskud.

Det bør kunne bringes til at virke...
Avatar billede acore Ekspert
16. juni 2017 - 13:26 #5
...uden ftp.
Avatar billede expnet Seniormester
16. juni 2017 - 15:51 #6
Har sendt dig en pm
Avatar billede Rune1983 Ekspert
20. juni 2017 - 09:07 #7
Løste det med overførsel af FTP.
Der var nogle rettigheder der skulle sættes for at få det til at fungere.
Avatar billede acore Ekspert
20. juni 2017 - 09:24 #8
Godt du kunne bruge vores hjælp?
Avatar billede Rune1983 Ekspert
20. juni 2017 - 11:29 #9
Der var ikke nogen som havde en direkte løsning.
Min løsning blev følgende nedenfor.
<?php
$ftp_host = 'xxx.xxx.xxx.xxx'; /* host */
$ftp_user_name = 'username'; /* username */
$ftp_user_pass = 'password'; /* password */

$LocalFilPlacering = "";
$RemoteFilPlacering = "";

// opret forbindelse
$conn_id = ftp_connect($ftp_host,21); // IP-adresse, portnummer
// login med username og password
if(ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)){
    print "<b>Connected</b><br />";
   
    // Array med alle filer i mappe
    $contents = ftp_nlist($conn_id, "$RemoteFilPlacering");
   
    for ($LoopFiles=0; $LoopFiles < count($contents); $LoopFiles++) {
        // basename = filnavnet uden stien
        $BaseFileName = basename($contents[$LoopFiles]);
        // Kopiere filen.
        if (ftp_get($conn_id, "$LocalFilPlacering/$BaseFileName", "$RemoteFilPlacering/$BaseFileName", FTP_BINARY)) {
            echo "successfully uploaded $BaseFileName<br />";
        } else {
            echo "There was a problem while uploading $BaseFileName<br />";
        }
    }
    // Luk forbindelse
    ftp_close($conn_id);
}else{
    print "<b>NOT Connected</b><br />";
}
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester