Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sprawdzić poprawność pliku
Forum PHP.pl > Forum > PHP
tjaden
Czy istnieje możliwość sprawdzenia przez php czy plik, który został na serwer przesłany przez ftp jest poprawnym plikiem, głównie chodzi o to żeby sprawdzić czy podczas przesyłania pliku nie nastąpiło zerwanie połączenia i na serwer dotarł tylko fragment przesyłanego pliku.
Fifi209
Sprawdź sumy kontrolne md5_file, sha1_file
TomASS
fifi:
"sprawdź" to chyba nieodpowiednie słowo - md5_file, sha1_file itp... OBLICZY sumę - skąd wziąć(przed uploadem) informację jaką sumę ma ten plik

taki kod:
  1. $file_name = $_REQUEST['plik'];
  2. $file_xls = "test.sql";
  3. $file_md5 = "test.sql.md5"; // Must exists and must be writable for PHP
  4. $md5_new_file = trim(md5_file($file_xls));
  5. $md5_old_file = trim(file_get_contents($file_md5));
  6.  
  7. if($md5_new_file <> $md5_old_file)
  8. {
  9. echo "file is out of date, updating now...";
  10. rename($file_md5, $file_md5.".bak");
  11. $fp = fopen($file_md5, 'w');
  12. fwrite($fp, $md5_new_file);
  13. fclose($fp);
  14. /*
  15. Here we do some job...
  16. In my case - dealing with "Spreadsheet Excel Reader"
  17. */
  18. unlink($file_md5.".bak");
  19. }
  20. // "Not for crontab" - Remove the following section if you are intending to run it in crontab
  21. else
  22. {
  23. echo "file is up to date, nothing to do...";
  24. }
  25. // End "Not for crontab";
  26.  
  27. ?>


Świetnie się sprawdzić podczas przesyłania pliku - informuje, że przesyłanie trwa. Jednak gdy przerwiesz przesyłanie w połowie, wówczas ww. kod powie, że plik jest poprawny.
ERGO:
Kod mówi kiedy skończy się przesyłanie pliku (może skończyć się np. w połowie) a nie czy plik był kompletny
Fifi209
Cytat(TomASS @ 25.11.2010, 14:44:14 ) *
fifi:
"sprawdź" to chyba nieodpowiednie słowo - md5_file, sha1_file itp... OBLICZY sumę - skąd wziąć(przed uploadem) informację jaką sumę ma ten plik

np. Java.
TomASS
miało być tylko przy pomocy PHP:
Cytat
Czy istnieje możliwość sprawdzenia przez php czy plik

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.