Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kopiowenie plików z innego serwera
Wasiquard
post 20.03.2005, 22:14:26
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.11.2004

Ostrzeżenie: (10%)
X----


Potrzebuję script, który będzie mi kopiował pliki jpg (tapetki) z innego serwera na mój serwer. Myślałem, że nie będzie problemu. Jednak nawet funkcja file_exists() zwraca FALSE. NIe wiem, czy użycie mojej funkcji upload() jest na miejscu.

  1. <?
  2. function upload($plik, $dir=0, $typ=1, $new_name=0, $roz=0){
  3. $plik_temp = $plik[tmp_name];
  4. $plik_name = $plik[name];
  5. $plik_size = $plik[size];
  6. $plik_type = $plik[type];
  7. $plik_error = $plik[error];
  8. if($pliku_error > 0){
  9. switch($plik_error){
  10. case 1: print&#092;"Rozmiar pliku przekroczył maksymalną wartość\"; break;
  11. case 2: print&#092;"Rozmiar pliku przekroczył wartość max_file_size\"; break;
  12. case 3: print&#092;"Plik wysłany tylko częściowo\"; break;
  13. case 4: print&#092;"Nie wysłano żadnego pliku\"; break;
  14. }
  15. }
  16. if(@is_uploaded_file($plik_temp)){
  17. $wiersz = explode(&#092;";\", $typ);
  18. for($i=0;$i<count($wiersz);$i++){
  19. if(($wiersz[$i]!=1 AND $wiersz[$i]==$plik_type) OR ($wiersz[$i]==1 AND $wiersz[$i]!=$plik_type)){
  20. $dobry_typ = 1;
  21. }
  22. }
  23. if($dobry_typ!=1){
  24. print&#092;"<br />Zły format pliku <i>\".$plik_name.\"</i> (<i>\".$plik_type.\"</i>)! Musisz wybrać plik <i>\".$typ.\"</i>\";
  25. return;
  26. }
  27. if(!file_exists($dir))
  28. mkdir(&#092;"/\".$dir, 0777);
  29. if($dir) $dir = $dir.&#092;"/\"; else $dir = \"\";
  30. $lokalizacja = $dir.$plik_name;
  31. if(@move_uploaded_file($plik_temp, $lokalizacja)){
  32. print&#092;"Plik <i>\".$plik_name.\"</i> został dodany!\";
  33. if($new_name){
  34. print&#092;"<br />n\";
  35. if($roz)
  36. $roz = &#092;".\".$roz;
  37. else
  38. unset($roz);
  39. if(@rename($lokalizacja, $dir.$new_name.$roz)){
  40. print&#092;"Zmieniono nazwę pliku na <i>\".$new_name.$roz.\"</i>!\";
  41. } else {
  42. print&#092;"Nie można było zmienić nazwy pliku <i>\".$plik_name.\"</i> na <i>\".$new_name.$roz.\"</i>!<br />\";
  43. if(@unlink($lokalizacja))
  44. print&#092;"Usunięto plik <i>\".$plik_name.\"</i>!\";
  45. else
  46. print&#092;"Plik <i>\".$plik_name.\"</i> nie został usunięty!\";
  47. }
  48. }
  49. } else {
  50. if(@copy($plik_temp, $lokalizacja)){
  51. print&#092;"Plik został dodany przy drugiej próbie!\";
  52. } else {
  53. print&#092;"Plik nie został skopiowany!\";
  54. }
  55. }
  56. } else {
  57. print&#092;"Nie wysłano pliku!\";
  58. }
  59. print&#092;"<br />n\";
  60. }
  61. $nr = 1;
  62. if($_POST[dir]){
  63. while(file_exists(&#092;"http://www.amimewallpapers.com/wallpapers/\".$_POST[dir].\"/f_\".$nr.\"_1024.jpg\")){
  64. upload(&#092;"http://www.amimewallpapers.com/wallpapers/\".$_POST[dir].\"/f_\".$nr.\"_1024.jpg\", $_POST[dir]);
  65. $nr++;
  66. }
  67. $nr -= 1;
  68. print&#092;"<br />\";
  69. if($nr>0)
  70. print&#092;"Ściągniętych tapet z katalogu <b>\".$_POST[dir].\"</b>: \".$nr;
  71. else
  72. print&#092;"Nie pobrano żadnej tapety z katalogu: \".$_POST[dir].\".\";
  73. }
  74. ?>


--------------------
Tworzenie stron www | Muzyka z filmów
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
soldat
post 21.03.2005, 15:39:22
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 14.03.2005
Skąd: W-wa

Ostrzeżenie: (0%)
-----


Nie jestem pewien, ale file_exists działa chyba tylko w odniesieniu do "własnego" serwera. Spróbuj może sprawdzić istnienie pliku w jakiś inny sposób - ja kiedyś używałem do tego getimagesize - bo przy okazji sprawdzałem sobie czy wymiary mi odpowiadają
  1. <?php
  2. if ($im=@getimagesize ..... 
  3. ?>


Ale jak juz pisałem pewien nie jestem worriedsmiley.gif

EDIT : a jak zachowuje się serwer (jakieś błędy ?)

Ten post edytował soldat 21.03.2005, 15:40:23
Go to the top of the page
+Quote Post
Wasiquard
post 22.03.2005, 12:18:06
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.11.2004

Ostrzeżenie: (10%)
X----


file_exists zwraca FALSE. Żadnych błędów. getimagesize z tego co wiem sporo obciąża serwer. A może zadziała taki kod, lekko zmodyfikowany, bo jakoś sobie już zaczyna radzić:
  1. <?
  2. $nr = 1;
  3. if($_POST[dir]){
  4. $link = &#092;"http://www.animewallpapers.com/wallpapers/\".$_POST[dir].\"/\";
  5. while($link_plik = $_POST[dir].&#092;"_\".$nr.\"_1024.jpg\" AND $czytaj_plik = fopen($link.$link_plik, \"r\")){
  6. $plik = file($czytaj_plik);
  7. fclose($czytaj_plik);
  8.  
  9. $nr++;
  10. }
  11. $nr -= 1;
  12. print&#092;"<br />\";
  13. if($nr>0)
  14. print&#092;"Ściągniętych tapet z katalogu <b>\".$_POST[dir].\"</b>: \".$nr;
  15. else
  16. print&#092;"Nie pobrano żadnej tapety z katalogu: \".$_POST[dir].\".\";
  17. }
  18. ?>


Ten post edytował Wasiquard 24.03.2005, 23:50:20


--------------------
Tworzenie stron www | Muzyka z filmów
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:28