Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]BLOB MySQL problem
McGoo123
post
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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
melkorm
post
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
McGoo123
post
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ć ?
Go to the top of the page
+Quote Post
melkorm
post
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
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ć.
Go to the top of the page
+Quote Post
melkorm
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
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
Go to the top of the page
+Quote Post
melkorm
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
Wielkie dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
(IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)
Go to the top of the page
+Quote Post

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: 22.08.2025 - 18:04