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.
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 ? smile.gif Że tak spytam, nie chcę validować niczego , poprostu chce aby plik znalazł sie na serwerze 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... smile.gif

Czy komuś w ogóle uploaduje się plik z rozszerzeniem pisanym wielkimi literami ? smile.gif

Może jakiś, banalny przykładzik ? 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. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
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ć tongue.gif

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

Ten post edytował MWL 10.09.2008, 14:18:50


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
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.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
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. 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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
-MietekJurek-
post
Post #13





Goście







Usunąłem strtolower i niestety nadal nie działa 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 tongue.gif


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
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 Aktualny czas: 21.08.2025 - 14:14