Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kopiowanie plików w sieci lokalnej
Forum PHP.pl > Forum > Przedszkole
busyboy
Witam Serdecznie

Co do kopiowania plików między forledrami nie ma problemu np.

  1. rename("123.xml", "123.txt");


I przy okazji od razu usuwa stary plik biggrin.gif

A co w przypadku gdy chce przenieść / skopiować plik w sieci lokalnej np. pod adres : \\192.168.0.226\temp\

Bardzo proszę o wskazówkę jak to zrobić

Pozdrawiam
BusyBoy
Randallmaster
http://phpkurs.pl/operacje-na-plikach/

Wujek Google pomaga smile.gif
busyboy
Tak tylko jak wpisuje

  1. rename("123.xml", "\\192.168.0.226\orders\123.txt");


To mi nie działa sad.gif
Turson
Znaki " nie są tam bez powodu, więc zajrzyj do podstaw PHP do czego sluzą.
Rysh
Cytat(busyboy @ 19.08.2014, 14:04:04 ) *
Witam Serdecznie

Co do kopiowania plików między forledrami nie ma problemu np.

  1. rename("123.xml", "123.txt");


I przy okazji od razu usuwa stary plik biggrin.gif

A co w przypadku gdy chce przenieść / skopiować plik w sieci lokalnej np. pod adres : \\192.168.0.226\temp\

Bardzo proszę o wskazówkę jak to zrobić

Pozdrawiam
BusyBoy

Rename - jak sama nazwa wskazuje, nie służy do kopiowania tylko do zmiany nazwy pliku - i tak masz w manualu.

Tak jak napisał Ci mitorski, sprawdź tą funkcję:
http://php.net/manual/en/function.copy.php
busyboy
Już próbowałem na wszystkie sposoby z manuala

  1. if(!@copy('123.xml','.//192.168.0.226/orders/123.txt'))
  2. {
  3. $errors= error_get_last();
  4. echo "COPY ERROR: ".$errors['type'];
  5. echo "<br />\n".$errors['message'];
  6. } else {
  7. echo "File copied from remote!";
  8. }


Może ktoś mi poda jakieś wskazówki ?
tzm
Kod
<?php
    echo 'postawy php - funkcja copy';
    $from = '1/1.png'; // skąd
    $to = '2/1.png'; // dokąd
    copy($from, $to);
?>


Kopiuje bezbłędnie.
busyboy
Tak wiem, tylko zauważ że tu jest adres sieci lokalnej

  1. //192.168.0.226/orders/123.txt


i z tym nie działa sad.gif

Tak działa poprawnie

  1. if(!@copy('123.xml','123\123.txt'))
  2. {
  3. $errors= error_get_last();
  4. echo "COPY ERROR: ".$errors['type'];
  5. echo "<br />\n".$errors['message'];
  6. } else {
  7. echo "File copied from remote!";
  8. }


i to się zgadza... ale z adresem lokalnej sieci nie chce skopiować...
Rysh
  1. $source = '//192.168.0.226/orders/123.txt';
  2. $get = file_get_contents($source);
  3. file_put_contents('123.txt', $get);
Pyton_000
  1. copy("123.xml", "\\\\192.168.0.226\\orders\\123.txt");
busyboy
Dziękuje za wskazówki ale to rozwiązanie też mi nie działa sad.gif

  1. if(!@copy('123.txt', '\\\\192.168.0.226\\orders\\123.txt'))
  2. {
  3. $errors= error_get_last();
  4. echo "COPY ERROR: ".$errors['type'];
  5. echo "<br />\n".$errors['message'];
  6. } else {
  7. echo "File copied from remote!";
  8. }
Pyton_000
a nie działa bo? Jakiś error? i wywal tą @. masz podmontowany taki zasób do którego kopiujesz?
tzm
http://stackoverflow.com/questions/2159941...folder-in-a-lan

tylko nie mów że nie znasz angielskiego..
Rysh
Po pierwsze nie mutuj co Ci zwraca funkcja (czyli nie dawaj znaku @ przed funkcją), a po drugie po co negujesz warunek? Skoro i tak dajesz else, zawsze to jedno obliczenie mniej, ale durne nawyki potrafią się mnożyć.

  1. if(copy('123.txt', '\\\\192.168.0.226\\orders\\123.txt')) {
  2. echo "File copied from remote!";
  3. } else {
  4. $errors= error_get_last();
  5. echo "COPY ERROR: ".$errors['type'];
  6. echo "<br />\n".$errors['message'];
  7. }


Na koniec pokazuj co Ci krzyczy w przeglądarce.
busyboy
Przeglądarka mi krzyczy taki błąd :

  1. Warning: copy(\\192.168.0.226\orders\123.txt) [function.copy]: failed to open stream: Permission denied in C:\Program Files\VertrigoServ\www\test\index.php on line 64
  2. COPY ERROR: 2
  3. copy(\\192.168.0.226\orders\123.txt) [function.copy]: failed to open stream: Permission denied


Czy oprócz kodu php należy coś jeszcze znić w pliki php.ini albo gdzieś w otoczeniu sieciowym ?
tzm
Czyli albo jesteś leń, albo nie znasz angielskiego.
Bo rzuciłem linka odnośnie uprawnień dostępu.
busyboy
tzm - niestety nie ogarniam tego... sad.gif może mój angielski nie jest w takim stopniu abym zrozumiał to co jest napisane sad.gif
Pyton_000
Ekhmm...
https://translate.googleusercontent.com/tra...WoPPbh1PwD8LvvA
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.