Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kopiowanie pliku - funkcja copy i błędy
Forum PHP.pl > Forum > PHP
SebaT
Napisałem w Php skrypcik, który z określonego katalogu ( w którym pojawiają się skany ) kopiuje pliki do innej lokalizacji i dodaje je do bazy danych. Użyłem funkcji copy. Dopisałem sobie w index.php kilka linijek kodu które sprawdzają czy pliki w katalogu już się znajdują. Jeśli się znajdują to automatycznie są kopiowane w inne miejsce. Wszystko działa z tym, że skaner czasem dość długo tworzy ten plik. Niby jest już w katalogu ale jego rozmiar ciągle rośnie, czasem dopiero po kilku minutach plik jest gotowy, a mój skrypt działa tak, że jak się coś w katalogu pojawi to od razu próbuje go przekopiować w inne miejsce. No i tu pojawiają się błędy bo "nie idzie " skopiować pliku dopóki nie jest gotowy.
Wyjścia są 2 dać czas np 5 minut aby pliki się kopiowały, ale trudno przewidzieć tą graniczną wartość. ja wolałbym żeby kopiowanie było od razu po utworzeniu się pliku.
Drugie wyjście to zabezpieczenie się w ten sposób, że jeśli nie można skopiować to niech próbuje do skutku i tego nie potrafię zrobić. Niby funkcja copy pozwala pozwala na wyświetlenie np komunikatu gdy pojawi się błąd ale wygląda to paskudnie ponieważ wyskakują komunikaty, że nie można skopiować bo coś tam - komendy systemowe po angielsku a dopiero potem mój komunikat. Ja bym chciał żeby to wszystko odbywało się jakby poza wiedzą użytkownika. Użytkownik wchodzi na stronę i "pobudza" skrypt do działania, nie musi wiedzieć że coś się kopiuje lub czegoś nie można skopiować.
Proszę o pomoc.
piotr94
http://php.net/manual/en/function.set-error-handler.php
lub modyfikator if(!@copy(...))...
lub error_reporting
erix
A nie lepiej zrobić hardlink do pliku i skasować tamten źródłowy po skończeniu tworzenia? Nie będzie fizycznego kopiowania, tylko manipulujesz adresami.
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.