Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]upload zdjęcia na serv.:sprawdzanie rozszerzenia,zmiana nazwy,tworzenie miniaturki,wstawianie do bazy danych,polskie znaki
maciejfig
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 8.06.2010

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


Witam,
próbuje zrobic skrypt który po wysłaniu pliku(zdjęcia) wykona następującą prace:
1.sprawdzi rozszerzenie pliku (w przypadku rozszerzenia innego niz graficzne wypluje blad).
2.zmieni nazwe pliku na bardziej przyjazną(w tym pozbawi ją polskich znaków)
3.tworzy miniaturke
4.wstawia do bazy danych link do zdjecia i miniaturki.
Mam 3 skrypty ,ktore wykonuja te zadanie ale nijak nie moge ich ze soba polaczyc. Pomoze ktos albo chociaż naprowadzi?Bede bardzo zobowiazany
  1. <?php
  2. $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
  3. $p_typ=$_FILES['plik']['type']; // typ pliku
  4. $p_nazwa=$_FILES['plik']['name']; // nazwa pliku
  5. $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku
  6.  
  7. //wycinamy rozszerzenie z pobieranego pliku
  8. $p_roz= array_pop(explode(".", $p_nazwa));
  9.  
  10. /* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca
  11.   po przecinku/dzielimy przez 1204*1024 by było w MB*/
  12. $max_size=round(($_POST['max_file_size']/1048576),3)."MB";
  13.  
  14.  
  15. //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
  16. $poj_MB=round(($p_pojemnosc/1048576),2).'MB';
  17.  
  18. //kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
  19. $p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
  20. $folder="jail/";
  21.  
  22. //---Kolorki HTML---
  23. $k_cze="<font color=#ff0000>";
  24. $f_koniec="</font>";
  25. $k_nieb="<font color=#0000ff>";
  26.  
  27. if ($p_pojemnosc <= 0)
  28. {
  29. echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
  30. echo "<a href=index.php>Wracaj ...</a>";
  31. }
  32.  
  33. if ($poj_MB > $max_size)
  34. {
  35. echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
  36. echo "<a href=index.php>Wracaj ...";
  37. }
  38.  
  39. if (file_exists($folder.$p_nazwa_zm))
  40. {
  41. echo ("Plik o takiej nazwie jest już na serwerku <b><i>".$p_nazwa_zm."</b></i><br />");
  42. echo "<a href=index.php>Wracaj ...";
  43. }
  44.  
  45. else {
  46. if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
  47. exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');
  48.  
  49. echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />";
  50. $path_file=$folder.$p_nazwa_zm;
  51. $conn = mysql_connect('localhost', 'root', 'krasnal') or die('Error connecting to mysql');
  52. mysql_select_db('krasnal');
  53. $zapytanie=mysql_query("insert into nazwa_tabeli values(NULL,'$p_pojemnosc','$path_file','$p_typ')");
  54. echo "<a href=index.php>Wracaj ...";
  55. }
  56. ?>

  1. <?php
  2. $sp = explode(".",$plik_nazwa);
  3. $count_sp = count($sp) - 1;
  4.  
  5. // sprawdzamy rozszerzenie
  6. if($sp[$count_sp] == "gif" or $sp[$count_sp] == "jpg") {
  7. echo "Plik poprawny";
  8. // zamiast tego napisu wstaw kod,
  9. // ktory zapisuje plik na serwer
  10. }
  11. else {
  12. echo "Plik niepoprawny";
  13. }
  14.  
  15. ?>

  1. <?php
  2. $img = imagecreatefromjpeg("jail/photo/normal/gal1/19.jpg");
  3. $width = imagesx($img);
  4. $height = imagesy($img);
  5. $proporcja = $width / $height;
  6. $width_mini = $width * 0.02;
  7. $height_mini = $height * 0.02;
  8.  
  9. if($proporcja>=1.5){
  10. $width_mini = 120;
  11. $height_mini = 120 / $proporcja;
  12. }else{
  13. $width_mini = 80 * $proporcja;
  14. $height_mini = 80;
  15. }
  16.  
  17.  
  18. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  19. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width , $height);
  20.  
  21. imagejpeg($img_mini, "jail/photo/test/19a.jpg", 60);
  22. imagedestroy($img);
  23. imagedestroy($img_mini);
  24. ?>


pozdrawiam
Maciek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
8_pasazer_NOSTRO...
post
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 18.11.2009
Skąd: Legnica

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


Witam

Podepnę się pod temat, bo mam podobny problem. Ja chciałbym wysłany obraz jpg zmniejszyć do rozmiaru 400x300 i wrzucić do bazy danych ale Chiny nie daje radę. Proszę o pomoc. Oto kod:

Forlumarz :
  1. print"Wysłać można tylko pliki z rozszerzeniem : jpg<br>";
  2. print" <form action='typowania.php' method='POST' ENCTYPE='multipart/form-data' name='wysylka' onsubmit=\"if(document.wysylka.plik.value=='') {alert('Proszę wybrać plik do wysłania!'); return false; };\">";
  3. print"<br>";
  4. print"<input type='hidden' name='status' value='dod_zdjecie_2'>";
  5. print"<input type='file' name='plik' size='50' onchange='submit();'>";
  6. print"</form>";


Plik wykonawczy :
  1. $max_rozmiar = 600000; //w bajtach
  2. if (is_uploaded_file($_FILES['plik']['tmp_name']))
  3. {
  4. $nazwa=''.$_FILES['plik']['name'];//print"$nazwa<br>";
  5. $typ=''.$_FILES['plik']['type'];//print"$nazwa<br>";
  6. $k="Odebrano plik : $nazwa typ : $typ ";
  7. if ($_FILES['plik']['size'] > $max_rozmiar) {$k=$k."Błąd! Plik jest za duży! Musi mieć mniej niż 600Kb";}
  8. elseif ($_FILES['plik']['type']!="image/jpeg") {$k=$k."Błąd! Niezgodny typ pliku ! Dopuszczalne są tylko pliki : jpg";}
  9. else{
  10.  
  11. $src=ImageCreateFromJpeg($nazwa);
  12. list($width,$height)=getimagesize($nazwa);
  13. $wys=400;
  14. $szer=300;
  15. $tmp=imagecreatetruecolor($szer,$wys);
  16. imagecopyresampled($tmp, $src, 0, 0, 0, 0, $szer, $wys,$width,$height);
  17. imagejpeg($tmp, $nazwa,100);
  18.  
  19. $zawplik=file_get_contents($nazwa,true);
  20. $ilzn=strlen($zawplik); //print"<br>ilość znaków w pliku=$ilzn";
  21.  
  22. $nplik=addslashes($zawplik);
  23.  
  24. include "../../../osoby/baza.php";
  25. $zapytanie = "INSERT INTO zdjecia (osoba,tresc,tytul,typ_pliku,dw,kto) values ('$_num','$nplik','$nazwa','$typ','$_kiedy','$_kto') ";
  26. $wykonaj = mysql_query($zapytanie) or die ("wprowadzenie pliku błędne ".mysql_error());
  27. mysql_close($link);
  28. };
  29.  
  30. };


Plik nie zapisuje się w bazie danych. Co jest źle ? Po raz kolejny wzywam Megamocnego nospora. Szefie gdzie jesteś jak Cie trzeba ? Litosci. Ileż ja już za Ciebie zdrowasiek odklepałem w kościele. Szok.

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: 15.10.2025 - 16:37