Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]dodawanie zdjęć do forlmularza
gosienkami
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


witam
Mam formularz dodawania produktu
produkt opis i zdjęcia.
jak dodać zdjecia do formularza po czym mają być zapisane do bazy do poszczegolnego rekordu.
przy załadowaniu zdjęc do formularza mają być miniaturki.
Go to the top of the page
+Quote Post
f1xer
post
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

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


musisz po prostu wczytać zdjęcie i zapisać do bazy do poszczególnego rekordu a później stworzyć miniaturkę (konkretna odpowiedź na konkretne pytanie)
A tak poważnie to może jakieś bliższe szczegóły?
Go to the top of the page
+Quote Post
gosienkami
post
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


w jednym pliku narazie mam
  1. <?php
  2. <input type="hidden" name="MAX_FILE_SIZE" value="30000">
  3.  
  4. Wybierz plik który chcesz umieścić na serwerze:<br>
  5.  
  6. <input name="plik" type="file" id="plik" size="40">
  7. <br>
  8. <input type="submit" value="Wgraj plik">
  9. ?>

a w pliku zapis.php

  1. <?php
  2. if (!is_uploaded_file($_FILES['plik']['tmp_name'])) {
  3.  
  4.    die ('Nie dołączono pliku.');
  5.    
  6. }
  7. ?>
i mi wyskakuje ze nie dołaczono
Go to the top of the page
+Quote Post
potreb
post
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Nie dołączono, tylko tyle kodu??

Ten post edytował potreb 19.01.2009, 19:18:48
Go to the top of the page
+Quote Post
Chrom
post
Post #5





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


sprawdź nagłówek formularza
Go to the top of the page
+Quote Post
gosienkami
post
Post #6





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(potreb @ 19.01.2009, 19:18:03 ) *
Nie dołączono, tylko tyle kodu??

tak
Go to the top of the page
+Quote Post
potreb
post
Post #7





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Daj na początku skryptu error_reporting(E_ALL); i print_r($_FILES['plik']);

Jeżeli nie wywali ci nic tzn że formularz nie wysyła pliku. Nie wiem czy masz ustawione dla forma enctype="multipart/form-data"
Go to the top of the page
+Quote Post
gosienkami
post
Post #8





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(potreb @ 19.01.2009, 19:35:44 ) *
Daj na początku skryptu error_reporting(E_ALL); i print_r($_FILES['plik']);

Jeżeli nie wywali ci nic tzn że formularz nie wysyła pliku. Nie wiem czy masz ustawione dla forma enctype="multipart/form-data"


wyswietla mi się

Array ( [name] => 4.gif.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 ) Nie dołączono pliku.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




może to Ci pomoże: http://olaszewski.freehostia.com/?p=17
Go to the top of the page
+Quote Post
gosienkami
post
Post #10





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(piotrooo89 @ 19.01.2009, 19:53:26 ) *

nic mi nie tworzy a mam tak samo jak w linku

nie tworzy mi pliku i nie przenosi do wybranego katalogu

$f = $_FILES['name']; czy w miejscu name mam cos innego wstawić?
Go to the top of the page
+Quote Post
potreb
post
Post #11





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


[tmp_name] - masz puste, tzn że plik nie przesyłany. Pokaż cały formularz.
Go to the top of the page
+Quote Post
gosienkami
post
Post #12





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Bład mam taki

Array ( [name] => 1.jpg [type] => image/jpeg [tmp_name] => C:\DOCUME~1\admin\USTAWI~1\Temp\php360.tmp [error] => 0 [size] => 168902 )





1.php



  1. <?php
  2. <body>
  3.  
  4.    <form  action="2.php" enctype="multipart/form-data"  method="post">
  5.  
  6.    <fieldset>
  7.  
  8.                
  9.  
  10.    <div>
  11.  
  12.                <label  for="plik">plik</label>
  13.  
  14.    <input  id="name" name="zdj" size="32"  type="file" />
  15.  
  16.    <label></label>
  17.  
  18.    </div>
  19.  
  20.    <div>
  21.  
  22.    <input  class="submit" type="submit" value="Wyslij"  /></div>
  23.  
  24.    </fieldset>
  25.  
  26.    </form>
  27.  
  28.    </body>
  29.  
  30.    </html>
  31. ?>




2.php



  1. <body>
  2.  
  3.    <form  id="form1" name="form1"  enctype="multipart/form-data" method="post"  action="">
  4.  
  5.      <?
  6.  
  7.    require("polaczenie.php");
  8.  
  9.    
  10.  
  11.    $zdj=$_POST['zdj'];
  12.  
  13.    error_reporting(E_ALL);
  14.  
  15.     print_r($_FILES['zdj']);
  16.  
  17.    $f = $_FILES['zdj'];
  18.  
  19.    $spr= '../newsleter/galery/'; //ścieżka (tam gdzie mają  znajdować się zdjęcia)
  20.  
  21.    if  (is_dir($spr));
  22.  
  23.                if(isset($f['name']))
  24.  
  25.                {
  26.  
  27.                            move_uploaded_file($f['tmp_name'],  '../newsleter/galery/'.$f['name']);//przenoszę plik do katalogu
  28.  
  29.                }
  30.  
  31.    }
  32.  
  33.    if  (!empty($f))
  34.  
  35.    {
  36.  
  37.                $zdj=$f['zdj'];
  38.  
  39.    
  40.  
  41.                $sql1 = mysql_query("INSERT  INTO id SET
  42.  
  43.                fotka1='$zdj'");  //dodaje nazwę pliku do bazy danych
  44.  
  45.    }?>
  46.  
  47.    </form>
  48.  
  49.    </body>
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #13





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


W tablicy $_FILES nie ma błędu - error => 0

Kod
<span class="postcolor">Array (
     [name] => 1.jpg
     [type]  =>  image/jpeg [tmp_name] => C:\DOCUME~1\admin\USTAWI~1\Temp\php360.tmp
     [error] => 0
     [size] => 168902
)</span>


Wartości dla error:
0 - brak błędu
1 - rozmiar pliku jest większy niż max_upload_filesize konfiguracji PHP (plik php.ini)
2 - rozmiar pliku jest większy niż MAX_FILE_SIZE
3 - tylko część pliku została załadowana
4 - brak pliku (puste pole file)

Może ścieżka w $spr jest zła?

dodaj do poniższego warunku ciąg dalszy czyli obsługę przypadku, gdy is_dir() zwróci false, na potrzeby testu wystarczy Ci
  1. <?php
  2. if  (is_dir($spr)) {
  3. // twój kod
  4. } else {
  5.    echo 'Ścieżka ' . $spr . ' nie istnieje!';
  6. }
  7. ?>


Kod zapisu do bazy też jest zły, ale może przejdziemy do tego jak już zapiszesz obrazek.
Go to the top of the page
+Quote Post
gosienkami
post
Post #14





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(EarthCitizen @ 20.01.2009, 00:15:57 ) *
W tablicy $_FILES nie ma błędu - error => 0

Kod
<span class="postcolor">Array (
      [name] => 1.jpg
      [type]  =>  image/jpeg [tmp_name] => C:\DOCUME~1\admin\USTAWI~1\Temp\php360.tmp
      [error] => 0
      [size] => 168902
  )</span>


Wartości dla error:
0 - brak błędu
1 - rozmiar pliku jest większy niż max_upload_filesize konfiguracji PHP (plik php.ini)
2 - rozmiar pliku jest większy niż MAX_FILE_SIZE
3 - tylko część pliku została załadowana
4 - brak pliku (puste pole file)

Może ścieżka w $spr jest zła?

dodaj do poniższego warunku ciąg dalszy czyli obsługę przypadku, gdy is_dir() zwróci false, na potrzeby testu wystarczy Ci
  1. <?php
  2. if  (is_dir($spr)) {
  3. // twój kod
  4. } else {
  5.    echo 'Ścieżka ' . $spr . ' nie istnieje!';
  6. }
  7. ?>


Kod zapisu do bazy też jest zły, ale może przejdziemy do tego jak już zapiszesz obrazek.




to mam takie błedy

Array ( [name] => 4.gif.jpg [type] => image/jpeg [tmp_name] => C:\DOCUME~1\admin\USTAWI~1\Temp\php381.tmp [error] => 0 [size] => 88285 )
Notice: Undefined variable: spr in c:\usr\apache\httpd\html\produkty\2.php on line 19

Notice: Undefined variable: spr in c:\usr\apache\httpd\html\produkty\2.php on line 23
Ścieżka nie istnieje!
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #15





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Cytat
to mam takie błedy

Array ( [name] => 4.gif.jpg [type] => image/jpeg [tmp_name] => C:\DOCUME~1\admin\USTAWI~1\Temp\php381.tmp [error] => 0 [size] => 88285 )


To nie jest błąd! Usuń print_r($_FILES['zdj']);

Cytat
Notice: Undefined variable: spr in c:\usr\apache\httpd\html\produkty\2.php on line 19

Notice: Undefined variable: spr in c:\usr\apache\httpd\html\produkty\2.php on line 23


To jest bardziej ostrzeżenie/uwaga a nie błąd, usuń error_reporting(E_ALL)

Cytat
Ścieżka nie istnieje!


No tutaj to chyba wiesz co zrobić?(IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
gosienkami
post
Post #16





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


$spr= 'c:\usr\apache\httpd\html\produkty\galery'; zdjecia maja byc przechowywane w katalogu galery i krzyczy ze nie istnieje plik:(
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #17





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Nie istnieje plik czy katalog? Jak nie istnieje to utwórz go (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gosienkami
post
Post #18





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(EarthCitizen @ 20.01.2009, 09:43:08 ) *
Nie istnieje plik czy katalog? Jak nie istnieje to utwórz go (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


tzn mam 'c:\usr\apache\httpd\html\produkty\galery i ze ciezka nie istnieje katalog galery jest pusty
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #19





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Cytat
katalog galery jest pusty


A co to ma do tego, że jest pusty? Wklej komunikat błędu, bo to co piszesz nie ma sensu!
Go to the top of the page
+Quote Post
gosienkami
post
Post #20





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


tzn ze nie ma tam zadnego pliku bład jest tylko jak wyzej
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #21





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Jaki błąd jak wyżej? Nie podałeś jeszcze tego błędu!
Go to the top of the page
+Quote Post
gosienkami
post
Post #22





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


ok zapisuje mi zdjecia do katalogu galery tylko jeszcze mam problem z zapisem sciezki do bazy

  1. <?php
  2. $sql = mysql_query("INSERT INTO id SET
  3.    fotka1='$zdj'");
  4.    $wynik=mysql_query($sql);
  5.                  echo $zdj.'Zdjęcie dodane: ';
  6.                  }
  7. ?>


ok zapisuje mi zdjecia do katalogu galery tylko jeszcze mam problem z zapisem sciezki do bazy

  1. <?php
  2. $sql = mysql_query("INSERT INTO id SET
  3.    fotka1='$zdj'");
  4.    $wynik=mysql_query($sql);
  5.                  echo $zdj.'Zdjęcie dodane: ';
  6.                  }
  7. ?>
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #23





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Wklej strukturę tabeli, do której chcesz zapisać...
Go to the top of the page
+Quote Post
gosienkami
post
Post #24





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


#
# Table structure for table 'id'
#

DROP TABLE IF EXISTS id;
CREATE TABLE `id` (
`id` int(4) unsigned NOT NULL auto_increment,
`tytul` varchar(200) NOT NULL default '0',
`fotka1` varchar(20) default '0',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin2;

Ten post edytował gosienkami 20.01.2009, 10:42:18
Go to the top of the page
+Quote Post
nospor
post
Post #25





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




no ale troche samodzielnosci. skoro ci nie zapisuje to pewnie jest blad. wyswietl go sobie
  1. <?php
  2. $sql = mysql_query("INSERT INTO id SET
  3.   fotka1='$zdj'");
  4.   $wynik=mysql_query($sql) or die ('zapytanie: '.$sql.'   ---blad:'.mysql_error());
  5. ?>
Go to the top of the page
+Quote Post
gosienkami
post
Post #26





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


Cytat(nospor @ 20.01.2009, 10:48:07 ) *
no ale troche samodzielnosci. skoro ci nie zapisuje to pewnie jest blad. wyswietl go sobie
  1. <?php
  2. $sql = mysql_query(&#092;"INSERT INTO id SET
  3.   fotka1='$zdj'&#092;");
  4.   $wynik=mysql_query($sql) or die ('zapytanie: '.$sql.'   ---blad:'.mysql_error());
  5. ?>


zapytanie: ---blad:Zapytanie było puste
Go to the top of the page
+Quote Post
EarthCitizen
post
Post #27





Grupa: Zarejestrowani
Postów: 286
Pomógł: 70
Dołączył: 13.01.2009

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


Nospor wiem, że to mało edukacyjne, ale jak widzisz ciężki przypadek (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Poniżej masz zapytanie, które "powinno" działać... + obsługa błędu, którą napisał wcześniej nospor

  1. <?php
  2. $sql   = "INSERT INTO `id` (`tytul`, `fotka1`) VALUES ('tytul', 'nazwa_pliku')";
  3. $wynik = mysql_query($sql);
  4.  
  5. if ($wynik) {
  6.    echo 'ok';
  7. } else {
  8.    echo 'zapytanie: ' . $sql . '   ---blad: ' . mysql_error();
  9. }
  10. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #28





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




hihi, nie zwrocilem uwagi ze ona do sql przypisuje mysql_query() a potem to przepuszcza znowy przez mysql_query() (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

poprawiona wersja:
  1. <?php
  2. $sql = "INSERT INTO id SET
  3.  fotka1='$zdj'";
  4.  $wynik=mysql_query($sql) or die ('zapytanie: '.$sql.'   ---blad:'.mysql_error());
  5. ?>

oczywiscie post EarthCitizena tez jest ok
Go to the top of the page
+Quote Post
gosienkami
post
Post #29





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


zadnego błedu mi nie zwraca a w bazie dodaje pusty rekord
Go to the top of the page
+Quote Post
nospor
post
Post #30





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




nie moglas od razu powiedziec ze dodaje pusty rekord? Musisz w pelni opisywac problem bo inaczej ruski miesiac bedziemy sie bujac (a raczej nie bedziemy bo wkoncu jakis modek sie wnerwi i zamknie temat za takie zagrywki)

daje sie puste bo $zdj=$_POST['zdj'];
Przeciez zdj to pole typu FILE i ono w $_FILES sie znajduje.

Patrz co wkladasz do zapytania. glupie echo rozwiązuje sprawe.

Obowiązkowa lektura
http://nospor.pl/php-faq-n29.html#faq-1
i inne z tego linku
Go to the top of the page
+Quote Post
gosienkami
post
Post #31





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


wczesniej nic nie dodawało, dzieki za pomoc i cierpliwość
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 3.10.2025 - 19:48