Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]BLOB MySQL problem
Forum PHP.pl > Forum > Przedszkole
McGoo123
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.
melkorm
ty wsadzasz do bazy... plik oO"

do bazy wrzucasz nazwe pliku otrzymaną z tablicy $_FILE ... bez żadnych fopen itp winksmiley.jpg
McGoo123
Czyli ? Co sugerujesz zrobić ?
melkorm
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 ;]
McGoo123
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ć.
melkorm
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. ?>
McGoo123
Nadal : Warning: fread(): supplied argument is not a valid stream resource
melkorm
nawet po wyedytowanych zmianach w moim poście ? Jeżeli tak wklej / update'tnij obecny kod ;]
McGoo123
Ok, wprowadziłem zmiany pomogło guitar.gif
Wielkie dzięki za pomoc exclamation.gif exclamation.gif exclamation.gif
rolleyes.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.