Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z podpięciem do konkretnego folderu skryptu wysyłającego plik.
McDrone
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2012

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


Witam
Mam pewien problem ze skryptem. Pozwala wyłącznie na wysyłkę plików graficznych, sprawdzając jego wielkość i czy się nie powtarza do konkretnego folderu.
Działa, jeśli folder jest na w tej samej lokalizacji, co plik.php. Jeśli zmienię lokalizację wysyłki do innego folderu (./image/) też działa, ale zaprzestaje wysyłać komunikaty o postępach na poziomie sprawdzania czy się pliki nie dublują.
Tu działający kod:
  1. <?php
  2.  
  3. extract($HTTP_POST_VARS);
  4.  
  5. function menu()
  6. {
  7. $katalog=opendir('.');
  8. while(($element=readdir($katalog))!==FALSE)
  9. {
  10. $spis[]=$element;
  11. }
  12. echo '<form ACTION="'.$PHP_SELF.'" method="post" enctype="multipart/form-data">
  13. Upload Pliku: <input TYPE="file" name="plik" upload_max_filesize="3145728" size="50"><br>Do katalogu : <select name="cat">';
  14. foreach($spis as $wartosc)
  15. {
  16. if($wartosc!='..') echo '<option value="'.$wartosc.'">'.$wartosc.'</option>';
  17. }
  18. echo '</select><br><input type="submit" value="Uploaduj">
  19. <input type="hidden" name="action" value="upload">
  20. </FORM>';
  21. }
  22.  
  23. function upload() {
  24. global $cat,$_FILES;
  25. $ok=1;
  26. $accept = array('jpg','png','gif','bmp');
  27. $extension = substr($_FILES['plik']['name'],strrpos($_FILES['plik']['name'],'.')+1);
  28.  
  29. if($_FILES["plik"]["size"] > 3145728)
  30. {
  31. print 'Plik jest za duży !<br>';
  32. $ok=0;
  33. }
  34.  
  35. if(!in_array($extension,$accept))
  36. {
  37. echo 'Złe rozszerzenie, tylko jpg, gif, png, bmp.<br>';
  38. $ok=0;
  39. }
  40.  
  41. if ($ok==0)
  42. {
  43. print "Wybacz, twój plik nie dostał wysłany.";
  44. }
  45.  
  46. else
  47. {
  48. if(!file_exists($cat.'/'.$_FILES['plik']['name']))
  49. {
  50. $mask=umask(0);
  51. copy($_FILES['plik']['tmp_name'], "$cat/".$_FILES['plik']['name']);
  52. $plik=$_FILES['plik']['name'];
  53. @chmod($cat.'/'.$_FILES['plik']['name'],0777);
  54. umask($mask);
  55. if(file_exists($cat.'/'.$_FILES['plik']['name'])) echo 'Plik '.$plik.' został pomyślnie wgrany do katalogu '.$cat;
  56. else 'Podczas wgrywania pliku wystapił nieznany błąd !';
  57. }
  58. else echo 'Plik o takiej nazwie już istnieje, wybierz innš nazwę dla tego pliku !';
  59. }
  60. }
  61.  
  62. if (!isset($action)) $action="pokaz";
  63. switch($action)
  64. {
  65. case "pokaz":
  66. menu();
  67. break;
  68. default:
  69. upload();
  70. break;
  71. }
  72. ?>


A tutaj ze zmianą lokalizacji:
  1. <?php
  2.  
  3. extract($HTTP_POST_VARS);
  4.  
  5. function menu()
  6. {
  7. $katalog=opendir('./image/');
  8. while(($element=readdir($katalog))!==FALSE)
  9. {
  10. $spis[]=$element;
  11. }
  12. echo '<form ACTION="'.$PHP_SELF.'" method="post" enctype="multipart/form-data">
  13. Upload Pliku: <input TYPE="file" name="plik" upload_max_filesize="3145728" size="50"><br>Do katalogu : <select name="cat">';
  14. foreach($spis as $wartosc)
  15. {
  16. if($wartosc!='..') echo '<option value="'.$wartosc.'">'.$wartosc.'</option>';
  17. }
  18. echo '</select><br><input type="submit" value="Uploaduj">
  19. <input type="hidden" name="action" value="upload">
  20. </FORM>';
  21. }
  22.  
  23. function upload() {
  24. global $cat,$_FILES;
  25. $ok=1;
  26. $accept = array('jpg','png','gif','bmp');
  27. $extension = substr($_FILES['plik']['name'],strrpos($_FILES['plik']['name'],'.')+1);
  28.  
  29. if($_FILES["plik"]["size"] > 3145728)
  30. {
  31. print 'Plik jest za duży !<br>';
  32. $ok=0;
  33. }
  34.  
  35. if(!in_array($extension,$accept))
  36. {
  37. echo 'Złe rozszerzenie, tylko jpg, gif, png, bmp.<br>';
  38. $ok=0;
  39. }
  40.  
  41. if ($ok==0)
  42. {
  43. print "Wybacz, twój plik nie dostał wysłany.";
  44. }
  45.  
  46. else
  47. {
  48. if(!file_exists("./image/$cat.'/'".$_FILES['plik']['name']))
  49. {
  50. $mask=umask(0);
  51. copy($_FILES['plik']['tmp_name'], "./image/$cat/".$_FILES['plik']['name']);
  52. $plik=$_FILES['plik']['name'];
  53. @chmod("./image/$cat.'/'".$_FILES['plik']['name'],0777);
  54. umask($mask);
  55. if(file_exists("./image/$cat.'/'".$_FILES['plik']['name'])) echo 'Plik '.$plik.' został pomyślnie wgrany do katalogu '.$cat;
  56. else 'Podczas wgrywania pliku wystapił nieznany błąd !';
  57. }
  58. else echo 'Plik o takiej nazwie już istnieje, wybierz innš nazwę dla tego pliku !';
  59. }
  60. }
  61.  
  62. if (!isset($action)) $action="pokaz";
  63. switch($action)
  64. {
  65. case "pokaz":
  66. menu();
  67. break;
  68. default:
  69. upload();
  70. break;
  71. }
  72. ?>


Może ktoś mi podpowiedzieć gdzie albo w czym jest błąd?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 22.08.2025 - 22:12