Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Upload pliku JPG (wielkie litery)
-JanekMietek-
post
Post #1





Goście







Witam!

Chciałem zapytać czy jest jakis sposób na wgranie plików o rozszerzeniu pisanym wielkimi literami na ftp przez formularz w PHP.
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




a no jest. wyrazenie regularne. Jakie? http://php.net/preg_match i poczytaj o wyrażeniach regularnych
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #3





Goście







Hmm co mają wyrażenie regularne do tego ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Że tak spytam, nie chcę validować niczego , poprostu chce aby plik znalazł sie na serwerze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

strtolower zmienia nazwę na małe litery, ale co z tego jak plik sie nie dodaje na ftp. :/

oto mój kod:

  1. <?php
  2. echo "<div id=\"dod_aktu\"><form enctype=\"multipart/form-data\" action=\"$PHP_SELF\" method=\"post\">        
  3.        
  4.                    
  5.         <div id=\"title\">Wybierz zdjęcie </div>
  6.         <div id=\"form\"> <input type=\"file\" name=\"plik\"> </div>";
  7.            
  8.        echo "<div id=\"form\">    <input type=\"submit\" value=\"Zapisz\"></div
  9.        </form> ";
  10.  
  11.  
  12. //echo $_POST['FCKeditor1'];
  13.  
  14. $plik_tmp = strtolower($_FILES['plik']['tmp_name']);
  15. $plik_nazwa = strtolower($_FILES['plik']['name']);
  16. $plik_rozmiar = $_FILES['plik']['size'];
  17.  
  18.  
  19.  
  20. // random ***
  21.  
  22. $rozsz = substr(strrchr($plik_nazwa, "."), 1);
  23. $nazwa=substr($plik_nazwa,0,strrpos($plik_nazwa,'.'));
  24.  
  25. $t = time();
  26.  
  27.  
  28.  
  29. $randName =  "$nazwa$t.$rozsz";
  30.  
  31. //$randName = strtolower($randName)
  32.  
  33. $cel="upload/random/$randName";
  34.  
  35.  
  36.  
  37.  
  38.  
  39. if (!empty($_FILES['plik']['name']))
  40. {
  41.  
  42.  
  43.  
  44. if(is_uploaded_file($plik_tmp))
  45. {
  46.   move_uploaded_file($plik_tmp,$cel);
  47.  
  48.  
  49.   list($width, $height) = getimagesize($cel);
  50.    
  51.     ///////////////
  52.    
  53.    
  54.    
  55.    
  56.   // echo "Rozmiar oryginaln: ".$width." x ".$height."<br /><br />";
  57.     $newwidth1 = 260;
  58.     $newheight1 = round ( ( $newwidth1 * $height ) / $width );
  59.   //  echo "Nowy romiar: ".$newwidth1." x ".$newheight1."<br />";
  60.     $thumb1 = imagecreatetruecolor($newwidth1, $newheight1);
  61.     $source1 = imagecreatefromjpeg($cel);
  62.     if(imagecopyresized($thumb1, $source1, 0, 0, 0, 0, $newwidth1, $newheight1, $width, $height))
  63.  //   echo "<b>Zmieniono rozmiar</b><br /><br />";
  64.     if(imagejpeg($thumb1,$cel))
  65.  
  66. //////////////////////
  67.  
  68.  
  69.      
  70.    
  71.     echo '<komu> Zdjęcie zostało dodane pomyślnie </komu>';
  72. ////////////////////////// dodanie ////
  73.  
  74.  
  75.  
  76. }
  77.  
  78.  
  79.  
  80.  
  81.  
  82. mysql_query("SET NAMES utf-8");
  83.        
  84.      $dodaj = mysql_query("INSERT INTO `random` (`zdjecie`)
  85.                                                VALUES ('".$randName."');") or die(mysql_error());
  86.  
  87.    if($dodaj == 'TRUE')
  88.   {
  89.      echo '<komu> Zdjęcie zostało dodane do galerii <b>'.$galeria.'</b> </komu>';
  90.   }
  91.  
  92.    
  93.  
  94.  
  95. }
  96. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Włącz error_reporting(E_ALL); i powiedz jaki błąd ci wypluwa.
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #5





Goście







Jedyny warning ktory mi sie pojawia to:

  1. <?php
  2. NoticeUndefined variablePHP_SELF in /home/cantalupa/domains/cantalupa.pl/public_html/nowa/admin/modules/random.php on line 18
  3. ?>


Ale to raczej nie oto chodzi.
Może być tak, że serwer nie obsługuje rozszerzeń pisanych wielkimi literami ?
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #6





Goście







To może tak... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Czy komuś w ogóle uploaduje się plik z rozszerzeniem pisanym wielkimi literami ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Może jakiś, banalny przykładzik ? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
$plik_tmp = strtolower($_FILES['plik']['tmp_name']);

Kopiesz pod sobą dołek. ;]

Nie uploaduje pliku z nazwą z wielkich liter, bo nakazujesz PHP szukanie po małych. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Maxik
post
Post #8





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Wielkość liter w rozszerzeniu nie m znaczenia, ba nawet same rozszerzenie nie ma znaczenia. $_FILES['plik']['type'] ta zmienna przybiera wartośc typu mime np. image/png, image/jpeg, text/plain itd. Sprawdzaj w ten sposób.
Go to the top of the page
+Quote Post
MWL
post
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


hehehe, nie masz racji. Ja tak zrobiłem i na drugi dzień miałem hakera. Mimo że rozszerzenie jest prostym zabezpieczeniem to mimo wszystko dobrym. sam typ mime nie starczy bo każdemu plikowi możesz to zmienić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

np. haxoremjesteminicmitwojezabezpieczenieniezrobi.php -> mimetype image/gif ^^

Ten post edytował MWL 10.09.2008, 14:18:50
Go to the top of the page
+Quote Post
Maxik
post
Post #10





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Dlatego też często wykorzystuje się prostą metodę sprawdzania wielkości zuploadowanego obrazka, jeśli większy niż 1x1 to przechodzi, jeśli nie to błąd. Sumując wszystkie te zabezpieczenia może wyjść skrypt którego nie będzie opłacało się hakerowi złamać bo po prostu za dużo z tym roboty.
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #11





Goście







Cytat(erix @ 10.09.2008, 13:52:57 ) *
Kopiesz pod sobą dołek. ;]

Nie uploaduje pliku z nazwą z wielkich liter, bo nakazujesz PHP szukanie po małych. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


Ehhh... chodzi mi o roszerzenie, a nie o nazwe. JPG (wielkie litery).

Dalem strtolower zeby zmienilo roszerzenie na male litery, ale mimo to nie uploaduje pliku.

Z plikami, które maja rozszerzenie pisanymi małymi literami nie ma problemu.


dodalem co takiego:

  1. <?php
  2. if ($_FILES['plik']['type']=="image/jpeg" || $_FILES['plik']['type']=="image/JPG" || $_FILES['plik']['type']=="image/jpg" || $_FILES['plik']['type']=="image/JPEG" )
  3. ?>


uploaduje plik np: DSCN6546.JPG i nie przechodzi validacji.
Z plikiem DSCN6546.jpg nie ma problemu.
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Wielkość liter w rozszerzeniu nie m znaczenia, ba nawet same rozszerzenie nie ma znaczenia.

Nie rozumiesz. Poza tym, tmp_name nie trzyma rozszerzenia. ^^ move_uploaded_file" title="Zobacz w manualu PHP" target="_manual NIE ZADZIAŁA jeśli wielkość liter jest inna niż zapisany plik. Z małymi literami nie ma problemu - serwer przenosi z /tmp/uploads/temp_name do lokalizacji docelowej, ale już /tmp/uploads/TEMP_NAME nie, ponieważ plik temp_name (którego serwer szuka po użyciu strtolower" title="Zobacz w manualu PHP" target="_manual na zmiennej zawierającą lokalizację pliku źródłowego) w rzeczywistości nie istnieje.

Ten post edytował erix 10.09.2008, 16:06:32
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #13





Goście







Usunąłem strtolower i niestety nadal nie działa (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
Go to the top of the page
+Quote Post
MWL
post
Post #14





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


są i uparci (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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: 16.09.2025 - 06:22