Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Upload zdjęć do bazy mysql+miniaturki
vodkon
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.02.2011

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


Witam chciałbym zrobić upload zdjęć do bazy mysql tyle że prócz zdjęcia w oryginalnej rozdzielczości były by też 2 z inną ustaloną
  1. CREATE TABLE wydarzenia_galeria (
  2. id int(10) NOT NULL AUTO_INCREMENT,
  3. typ varchar(30) NOT NULL,
  4. rozmiar int(11) NOT NULL,
  5. nazwa varchar(200) NOT NULL,
  6. img mediumblob NOT NULL,
  7. PRIMARY KEY (id)
  8. );

Gdzie pole nazwa będzie uzupełnieniem reszty skryptu. jak zrobić taki skrypt i co zmodyfikować w kodzie sql czy ma tworzyć 3 osobne rekordy dla jednego zdjęcia czy jak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vodkon
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.02.2011

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


już nie ważne od nowa
tak wygląda tabela ze zdjęciami
  1. CREATE TABLE `galeria` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `typ` varchar(30) collate utf8_polish_ci NOT NULL,
  4. `size` int(20) NOT NULL,
  5. `wydarzenia` int(1) NOT NULL DEFAULT '0',
  6. `wydarzenia_nazwa` varchar(220) collate utf8_polish_ci NOT NULL,
  7. `nazwa` varchar(220) collate utf8_polish_ci NOT NULL,
  8. `img` mediumblob NOT NULL,
  9. PRIMARY KEY (`id`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ;


Tak plik jest wrzucany do bazy jak zrobić aby to samo zdjęcie miało jeszcze 2 różne wielkości np. 570px X 270px i druga 200x100 oraz oryginalna wielkość i żeby te przerobione były proporcjonalne żeby np. zawsze było 570 i 270 ewentualnie przycinało go przy bokach, i co dodać do kodu aby przepuszczał wszystkie pliki z obrazami a inne nie
  1. if($HTTP_POST_VARS['img'] == 1){
  2. if($HTTP_POST_FILES['plik']['size'] < 8665600 || $HTTP_POST_FILES['plik']['size'] != 0){
  3. if(is_uploaded_file($HTTP_POST_FILES['plik']['tmp_name']) || !isset($HTTP_POST_FILES['plik'])){
  4. mysql_connect("localhost", "root", "")or die("Brak połączenia z serwerem.");
  5. mysql_select_db("zszgoleniow")or die("ERROR MySQL: Zszgoleniow.pl Baza danych nie odpowiada!");
  6. mysql_query('SET CHARACTER SET utf8');
  7. $size = $HTTP_POST_FILES['plik']['size'];
  8. $name = $HTTP_POST_FILES['plik']['name'];
  9. $typ = $HTTP_POST_FILES['plik']['type'];
  10. $fhandle = fopen($HTTP_POST_FILES['plik']['tmp_name'], "r");
  11. $content = base64_encode(fread($fhandle, $HTTP_POST_FILES['plik']['size']));
  12. fclose($fhandle);
  13.  
  14.  
  15. $imgmysql="INSERT INTO galeria (typ,size,nazwa,img) VALUES ('$typ','$size','$name','$content')";
  16. mysql_query($imgmysql);
  17.  
  18. }else{ echo "Nie wybrano pliku!"; } }else{ echo "Wielkość pliku jest za duża!"; } }

wyświetlanie:
  1. if(isset($_GET['id'])){ $id = $_GET['id'];
  2. mysql_connect("localhost", "root", "")or die("Brak połączenia z serwerem.");
  3. mysql_select_db("zszgoleniow")or die("ERROR MySQL: Zszgoleniow.pl Baza danych nie odpowiada!");
  4. mysql_query('SET CHARACTER SET utf8');
  5. $img_mysql = "SELECT * FROM galeria WHERE id = '$id'";
  6. $imgre = mysql_query($img_mysql);
  7. $str_no = mysql_num_rows($imgre); if ($str_no == 1) {
  8.  
  9. $plik = mysql_fetch_array($imgre);
  10. header("Content-length: $plik[size]");
  11. header("Content-type: $plik[typ]");
  12. header("Content-Disposition: attachment; filename=$plik[nazwa]");
  13. echo base64_decode($plik[img]);
  14.  
  15. exit(); } }


Ten post edytował vodkon 15.12.2012, 17:26:20
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: 15.10.2025 - 14:32