Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]BLOB MySQL problem
McGoo123
post 27.09.2008, 19:46:48
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

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


Hej,

Korzystając ze wskazówek artykułu na http://www.weberdev.com/ViewArticle/Saving-Images-in-MySQL stworzyłem bazę i udało mi się wrzucić kilka zdjęć do bazy. Wszystko działa prawie jak trzeba, problem pojawia się podczas wyświetlania zdjęć:

  1. <?php
  2. If( $Picture != "none" ) {
  3.        $PSize = filesize ( $Picture );
  4.        $mysqlPicture = addslashes (fread(fopen($Picture,"r"),$PSize ));
  5.        mysql_connect ( $host , $username , $password ) or die( "Unable to connect to SQL server" );
  6.        @ mysql_select_db ( $db ) or die( "Unable to select database" );
  7.        mysql_query ( "INSERT INTO Images (Image) VALUES ('$mysqlPicture')" ) or die( "Can't Perform Query" );
  8.        }
  9.      else {
  10.            echo "You did not upload any picture" ;
  11.            }
  12.              
  13.        mysql_connect ( $host , $username , $password ) or die( "Unable to connect to SQL server" );
  14.        @ mysql_select_db ( $db ) or die( "Unable to select database" );
  15.        $result = mysql_query ( "SELECT * FROM Images WHERE user_id=$id2" ) or die( "Can't Perform Query" );
  16.        While( $row = mysql_fetch_object ( $result )) {
  17.        echo "<img class=\"photo\" alt=\"\" src=\"SecondType.php?PicNum=$row->PicNum\" />" ;
  18.        }
  19. ?>


Zdjęcie się wyświetla ale pojawia się komunikat : Warning: fread(): supplied argument is not a valid stream resource

Macie pomysł co jest nie tak questionmark.gif

Z góry dzięki za pomoc.


--------------------
Pozdrawiam
McGoo
Go to the top of the page
+Quote Post
melkorm
post 27.09.2008, 19:50:28
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


ty wsadzasz do bazy... plik oO"

do bazy wrzucasz nazwe pliku otrzymaną z tablicy $_FILE ... bez żadnych fopen itp winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
McGoo123
post 27.09.2008, 19:56:54
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

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


Czyli ? Co sugerujesz zrobić ?


--------------------
Pozdrawiam
McGoo
Go to the top of the page
+Quote Post
melkorm
post 27.09.2008, 20:20:08
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


z czego wnioskuje w zmiennej $Picture masz nazwe pliku to daruj sobie fopen itp bo to nic Tobie nei daje prócz nazwy pliku chyba oO' (szczerze nie mam pojęcia co fopen robi z plikami innymi niż zawierającymi text ;x )

no ale do bazy wystarczy że wrzucisz $Pictures podczym kryje się ścieżka do pliku (?)

P.S. nie jest jasnowidze by wiedzieć co kryje się pod zmiennymi ;]


--------------------
Go to the top of the page
+Quote Post
McGoo123
post 27.09.2008, 20:42:01
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

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


Wcześniejszy kod wygląda tak :

  1. <FORM METHOD="post" ACTION="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
  2. <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000">
  3. <BR>Your picture:<BR>
  4. <INPUT TYPE="file" NAME="picture" SIZE="40">
  5. <INPUT TYPE="submit" NAME="submit" VALUE="Upload">
  6. </FORM>

  1. <?  
  2.    
  3.    $Picture = $_POST['picture'];
  4.    
  5.  
  6.  If( $Picture != "none" ) {
  7.        $PSize = filesize ( $Picture );
  8.        $mysqlPicture = addslashes (fread(fopen($Picture,"r"),$PSize ));
  9.        mysql_connect ( $host , $username , $password ) or die( "Unable to connect to SQL server" );
  10.        @ mysql_select_db ( $db ) or die( "Unable to select database" );
  11.        mysql_query ( "INSERT INTO Images (Image) VALUES ('$mysqlPicture')" ) or die( "Can't Perform Query" );
  12.        }
  13.      else {
  14.            echo "You did not upload any picture" ;
  15.            }
  16.              
  17.        mysql_connect ( $host , $username , $password ) or die( "Unable to connect to SQL server" );
  18.        @ mysql_select_db ( $db ) or die( "Unable to select database" );
  19.        $result = mysql_query ( "SELECT * FROM Images WHERE user_id=$id2" ) or die( "Can't Perform Query" );
  20.        While( $row = mysql_fetch_object ( $result )) {
  21.        echo "<img class=\"photo\" alt=\"\" src=\"SecondType.php?PicNum=$row->PicNum\" />" ;
  22.        }
  23. ?>


Zgodnie ze wskazówkami z http://www.weberdev.com/ViewArticle/Saving-Images-in-MySQL tak właśnie powinno wyglądać.


--------------------
Pozdrawiam
McGoo
Go to the top of the page
+Quote Post
melkorm
post 27.09.2008, 20:55:09
Post #6





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Mój błąd za który przepraszam - nie wiedza czasem mi doskwiera tongue.gif

Otóż tak się da i nie rozważając czy tak jest dobrze x/ źle czy optymalnie błą leży w 1 linijce:

  1. <?php
  2. $Picture = $_POST['picture'];
  3. ?>

zmień to na:
  1. <?php
  2. $Picture = $_FILES['picture']['name'];
  3. ?>


I powinno zadziałać.

edit -> literówka.

I zamiast tego:
  1. <?php
  2. $PSize = filesize ( $Picture );
  3. ?>

daj:
  1. <?php
  2. $PSize = $_FILES['picture']['size'];
  3. ?>


Ten warunek także nei zadziała :
  1. <?php
  2. If( $Picture != "none" ) {
  3. ?>

daj:
  1. <?php
  2. If( !empty($_FILES)) {
  3. ?>


Ten post edytował melkorm 27.09.2008, 21:06:46


--------------------
Go to the top of the page
+Quote Post
McGoo123
post 27.09.2008, 20:59:53
Post #7





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

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


Nadal : Warning: fread(): supplied argument is not a valid stream resource


--------------------
Pozdrawiam
McGoo
Go to the top of the page
+Quote Post
melkorm
post 27.09.2008, 21:18:13
Post #8





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


nawet po wyedytowanych zmianach w moim poście ? Jeżeli tak wklej / update'tnij obecny kod ;]


--------------------
Go to the top of the page
+Quote Post
McGoo123
post 27.09.2008, 21:23:43
Post #9





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

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


Ok, wprowadziłem zmiany pomogło guitar.gif
Wielkie dzięki za pomoc exclamation.gif exclamation.gif exclamation.gif
rolleyes.gif


--------------------
Pozdrawiam
McGoo
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:42