Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt Uploadu Plików - Problem z działaniem
MrLoverLover
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 18.02.2012

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


Hejka smile.gif

nie wiem dlaczego ale wszystkie znaki diakrytyczne zamienia mi na polskie bez ogonków tj. ą->a, lecz problem tkwi w tym, że wszystkie prócz `Ó`, `ó` są zamieniane.
Co zrobić by także ta literka była zamieniana na `o` ?

Drugi problem to taki iż, gdy zaznaczam pewien plik .mp3 to mi go nie uploaduje gdyż jest to mp3 a inny także mp3 to wogóle psuje mi działanie skryptu bo następuje zero reakcji ze strony skryptu.
Od czego zależy to czy skrypt zadziała i wyświetli błąd a kiedy nie ?

  1. <form action="" method="POST" enctype="multipart/form-data">
  2. <input type="file" name="img[]" multiple="multiple" />
  3. <input type="submit" name="wyslij" value="UPLOAD">
  4. </form>
  5. <?php
  6. /*
  7. function clear_name( $str, $replace = "" ){
  8.  
  9. // konwersja znaków utf do znaków podstawowych
  10. $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
  11.  
  12. // Niektóre francuskie i niemieckie litery pozostawiają po takiej konwersji (jak powy?ej)
  13. // dodatkowe znaki. Poni?sze dwie linijki te znaki wycinają
  14.  
  15. $charsArr = array( '^', "'", '"', '`', '~');
  16. $str = str_replace( $charsArr, '', $str );
  17.  
  18. $return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\.]/','',strtolower($str))));
  19. return str_replace(' ', $replace, $return);
  20. }
  21. //echo clear_name('ĄĘĆŁÓŃŹŻ.JPG');
  22. */
  23. function clear_name($nazwa){
  24. $plik_nazwa = $nazwa;
  25. $plik_nazwa = trim($plik_nazwa);
  26. $plik_nazwa = preg_replace('@ą@', 'a', $plik_nazwa);
  27. $plik_nazwa = preg_replace('@Ą@', 'a', $plik_nazwa);
  28. $plik_nazwa = preg_replace('@ć@', 'c', $plik_nazwa);
  29. $plik_nazwa = preg_replace('@Ć@', 'c', $plik_nazwa);
  30. $plik_nazwa = preg_replace('@ę@', 'e', $plik_nazwa);
  31. $plik_nazwa = preg_replace('@Ę@', 'e', $plik_nazwa);
  32. $plik_nazwa = preg_replace('@ł@', 'l', $plik_nazwa);
  33. $plik_nazwa = preg_replace('@Ł@', 'l', $plik_nazwa);
  34. $plik_nazwa = preg_replace('@ń@', 'n', $plik_nazwa);
  35. $plik_nazwa = preg_replace('@Ń@', 'n', $plik_nazwa);
  36. $plik_nazwa = preg_replace('@ó@', 'o', $plik_nazwa);
  37. $plik_nazwa = preg_replace('@Ó@', 'o', $plik_nazwa);
  38. $plik_nazwa = preg_replace('@ś@', 's', $plik_nazwa);
  39. $plik_nazwa = preg_replace('@Ś@', 's', $plik_nazwa);
  40. $plik_nazwa = preg_replace('@ż@', 'z', $plik_nazwa);
  41. $plik_nazwa = preg_replace('@Ż@', 'z', $plik_nazwa);
  42. $plik_nazwa = preg_replace('@ź@', 'z', $plik_nazwa);
  43. $plik_nazwa = preg_replace('@Ź@', 'z', $plik_nazwa);
  44. //$plik_nazwa = preg_replace("@'@", "", $plik_nazwa);
  45. //$plik_nazwa = preg_replace("@&@", "", $plik_nazwa);
  46. //male znaki diakrytyczne
  47. $plik_nazwa = preg_replace("@ą@", "a", $plik_nazwa);
  48. $plik_nazwa = preg_replace("@ć@", "c", $plik_nazwa);
  49. $plik_nazwa = preg_replace("@ę@", "e", $plik_nazwa);
  50. $plik_nazwa = preg_replace("@ł@", "l", $plik_nazwa);
  51. $plik_nazwa = preg_replace("@ń@", "n", $plik_nazwa);
  52. $plik_nazwa = preg_replace("@ó@", "o", $plik_nazwa);
  53. $plik_nazwa = preg_replace("@&oacute;@", "o", $plik_nazwa);
  54. $plik_nazwa = preg_replace("@ś@", "s", $plik_nazwa);
  55. $plik_nazwa = preg_replace("@ź@", "z", $plik_nazwa);
  56. $plik_nazwa = preg_replace("@ż@", "z", $plik_nazwa);
  57. //duze znaki diakrytyczne
  58. $plik_nazwa = preg_replace("@Ą@", "a", $plik_nazwa);
  59. $plik_nazwa = preg_replace("@Ć@", "c", $plik_nazwa);
  60. $plik_nazwa = preg_replace("@Ę@", "e", $plik_nazwa);
  61. $plik_nazwa = preg_replace("@Ł@", "l", $plik_nazwa);
  62. $plik_nazwa = preg_replace("@Ń@", "n", $plik_nazwa);
  63. $plik_nazwa = preg_replace("@Ó@", "o", $plik_nazwa);
  64. $plik_nazwa = preg_replace("@&Oacute;@", "o", $plik_nazwa);
  65. $plik_nazwa = preg_replace("@Ś@", "s", $plik_nazwa);
  66. $plik_nazwa = preg_replace("@Ź@", "z", $plik_nazwa);
  67. $plik_nazwa = preg_replace("@Ż@", "z", $plik_nazwa);
  68.  
  69. $plik_nazwa = preg_replace('@ö@', 'o', $plik_nazwa);
  70. $plik_nazwa = preg_replace('@ä@', 'a', $plik_nazwa);
  71. $plik_nazwa = preg_replace('@ü@', 'u', $plik_nazwa);
  72. $plik_nazwa = ereg_replace (" +", " ", $plik_nazwa);
  73. $plik_nazwa = str_replace (" ", "", $plik_nazwa );
  74. $plik_nazwa = strtolower($plik_nazwa);
  75. //$plik_nazwa = strtr($plik_nazwa, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
  76. //$plik_nazwa = strtr($plik_nazwa, "\xA1\xA6\xAC\xB1\xB6\xBC", "\xA5\x8C\x8F\xB9\x9C\x9F");
  77. return $plik_nazwa;
  78. }
  79. function check_ext($name){
  80. $ext=clear_name($name);
  81. $ext = strtolower(substr($ext,strrpos($ext,'.')+1)); //wycinamy ciag znaków po ostatniej kropce
  82. return $ext;
  83. }
  84. $dir='upload';
  85. $max_rozmiar=3072000;
  86. $whitelist=array('jpg', 'png', 'gif', 'jpeg');//akceptowane rozszerzenia
  87. if(isset($_POST['wyslij'])){
  88. $ile=count($_FILES['img']['name']);//ilosc przesylanych plikow ogolem
  89. $licz=0;
  90. $istnieje=0;
  91. for($i=0; $i<$ile; $i++){
  92. //echo''.$i.' '.$_FILES['img']['name'][$i].'<br/>';
  93. if(!file_exists("".$dir."/".clear_name($_FILES['img']['name'][$i])."")){
  94. if($_FILES['img']['tmp_name'][$i]!='' AND is_uploaded_file($_FILES['img']['tmp_name'][$i]) AND $_FILES['img']['size'][$i]<=$max_rozmiar AND in_array(check_ext($_FILES['img']['name'][$i]),$whitelist)){
  95. move_uploaded_file($_FILES['img']['tmp_name'][$i], "upload/".clear_name($_FILES['img']['name'][$i])."");
  96. echo''.clear_name($_FILES['img']['name'][$i]).' - Pomyslnie wgrany<br/>';
  97. $licz++;
  98. }else{
  99. echo'chuj';
  100. }
  101. }else{
  102. $istnieje++;
  103. }
  104. }
  105. $nieodpowiednie=$ile-$licz-$istnieje;
  106. <br />
  107. Wszystkich plikow: '.$ile.'<br />
  108. Wgranych pomyslnie: '.$licz.'<br />
  109. Juz istniejacych: '.$istnieje.'<br />
  110. Nieodpowiednich plikow: '.$nieodpowiednie.'<br />
  111. ';
  112. }
  113. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 18:16