php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.08.2005, 17:36  
Erfahrener Benutzer
 
Registriert seit: 21.05.2005
Beiträge: 123
King2k
Standard Problem: Bildupload in Datenbank

Hi Leute, ich wollte ein paar Grafiken in eine MySQL-DB uploaden und habe dazu folgendes gemacht:

Datenbank angelegt:
id INT(4) not_null auto_increment primary_key
bild CHAR(50)
bin_data LONGBLOB
name CHAR(50)
size CHAR(50)
type CHAR(50)


Dazu dann folgende Form erstellt:

Code:
<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
 Beschreibung:

 <input type="text" name="form_description"  size="40">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
 
Datei zum hochladen:

 <input type="file" name="form_data"  size="40">


 <input type="submit" name="submit" value="OK">
</form>
Und folgenden PHP-Code:
PHP-Code:
mysql_connect("localhost","name","passwort") or die(mysql_error());
 
mysql_select_db("binary_data") or die(mysql_error());
 
$data addslashes(fread(fopen($form_data"r"), filesize($form_data)));

 
$result mysql_query("INSERT INTO grafiken (bild,bin_data,name,size,type) ".
  
"VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");

 
$idmysql_insert_id() or die(mysql_error());

 print 
"

Das Bild hat die ID: [b]$id[/b]"
;
 
 
mysql_close() or die(mysql_error()); 

Soweit so gut...

Nun wollte ich das ganze Testen und eine Datei hochladen.

Was passiert?
Ich bekomme keine Fehlermeldung.
Die Form baut steht wieder leer da.
Die ID wird wider Erwarten nicht ausgegeben.
Das Bild ist nicht in der Datenbank.


Was habe ich falsch gemacht?
__________________
Der König hat gesprochen!
King2k ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.08.2005, 17:40  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Ohne dein Script jetzt großartig angesehen zu haben:
error_reporting(E_ALL) und
ini_set('display_errors', 1);
Chr!s ist offline  
Alt 15.08.2005, 17:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2005
Beiträge: 123
King2k
Standard

Zitat:
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Ahja.... Logisch, dass da nur Schwachsinn kommt...

Zitat:
The requested URL /dies/das/
Notice: Undefined variable: PHP_SELF in /blubb/upload.php on line 28
was not found on this server.
Doller Schwachsinn...

Aber imemrhin steht da eindeutig, dass PHP_SELF ungültig ist...

Nur warum ?!?
__________________
Der König hat gesprochen!
King2k ist offline  
Alt 15.08.2005, 18:17  
Gast
 
Beiträge: n/a
Standard

Dein Script ist veraltet, siehe

http://www.php.net/manual/de/features.file-upload.php

16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
http://www.php-faq.de/q/q-db-blob.html

Gruß
phpfan
 
Alt 15.08.2005, 19:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2005
Beiträge: 123
King2k
Standard

So, ich hab's neu geschrieben...

Die Eingabe (bild.php):

Code:
<html>
<head><title>Bilder in die Datenbank laden</title></head>
<body>

 <form method="post" action="upload.php" enctype="multipart/form-data">
  File Description:

  <input type="text" name="description"  size="40">
  <input type="hidden" name="max_file_size" value="1000000">
  
File to upload/store in database:

  <input type="file" name="userfile"  size="40">


  <input type="hidden" name="ok" value="ok">
  <input type="submit" name="submit" value="OK">
 </form>

</body>
</html>


Dazu dann das upload.php (zu dem das Zeug gepostet wird):

PHP-Code:
<?php

ini_set
('display_errors'1); error_reporting(E_ALL);


$descr $_POST['description'];
$fname $_FILES['userfile']['name'];
$fsize $_FILES['userfile']['size'];
$ftype $_FILES['userfile']['type'];

mysql_connect("localhost","error404sql3","xy9qr5bv") or die(mysql_error());
mysql_select_db("error404sql3") or die(mysql_error());

$data addslashes(fread(fopen($_FILES['userfile'], "r"), filesize($_FILES['userfile'])));

$result mysql_query("INSERT INTO grafiken (bild,bin_data,name,size,type) ".
 
"VALUES ('$descr','$data','$fname','$fsize','$ftype')");

$idmysql_insert_id() or die(mysql_error());
print 
"

Das Bild hat die ID: [b]$id[/b]"
;
 
mysql_close() or die(mysql_error());
 
echo 
"$descr
$data
$fname
$fsize
$ftype"
;

?>


Als Fehlermeldung kommt das hier raus:
Zitat:
Warning: fopen() expects parameter 1 to be string, array given in upload.php on line 14

Notice: Array to string conversion in upload.php on line 14

Warning: filesize(): Stat failed for Array (errno=2 - No such file or directory) in upload.php on line 14

Warning: fread(): supplied argument is not a valid stream resource in upload.php on line 14
__________________
Der König hat gesprochen!
King2k ist offline  
Alt 15.08.2005, 19:10  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Steht doch da
fopen erwartet ein String und kein Array als Parameter, genauso ist es mit filesize.
DiBo33 ist offline  
Alt 15.08.2005, 19:11  
Erfahrener Benutzer
 
Registriert seit: 21.05.2005
Beiträge: 123
King2k
Standard

Ja, und was muss ich dann da statt $_FILE['userfile'] abgeben?
__________________
Der König hat gesprochen!
King2k ist offline  
Alt 15.08.2005, 19:12  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Was gibst du denn bei $fname=... und $fsize=... an
DiBo33 ist offline  
Alt 15.08.2005, 19:13  
Clan
Gast
 
Beiträge: n/a
Standard

King2k hast du dir mal den link von phpfan angeschaut?

Zitat:
16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?
http://www.php-faq.de/q/q-db-blob.html
 
Alt 15.08.2005, 19:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2005
Beiträge: 123
King2k
Standard

Ja, ich weiß auch, dass es nachteile hat, aber eben nicht für jeden Zweck

@Problem:
Nach'm zweiten drüberschauen über den ersten Link von phpfan hab ich ['tmp_name'] entdeckt ^^

Wäre damit erledigt, danke Leute!
__________________
Der König hat gesprochen!
King2k ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
problem mit gleiche datenbank inhalte auslesen miwo PHP Tipps 2008 3 17.09.2007 14:35
While schleife mit Datenbank in ein Dropdown Feld (Umlaut Problem) kintaro PHP Tipps 2008 6 28.08.2007 19:11
Problem mit Datenbank tigergoal PHP Tipps 2006 8 30.08.2006 20:41
Problem bei Abfrage Quizfragen aus Datenbank gulli23 Datenbanken 1 16.08.2006 08:12
Problem mit Bildupload Charly Shop Sui PHP Tipps 2006 2 14.07.2006 12:30
Problem mit Bildupload 2wuck PHP Tipps 2006 2 03.07.2006 07:05
Problem beim eintragen in die Datenbank slimer PHP Tipps 2006 6 01.06.2006 10:47
Problem beim zeitbedingt 'einmaligen' update der datenbank PHP-Fortgeschrittene 1 30.01.2006 20:45
[Erledigt] Problem mit Eintragung in die Datenbank Datenbanken 12 06.01.2006 10:20
Datenbank Problem? Datenbanken 2 04.08.2005 14:53
PHP Datenbank Problem PHP Tipps 2005-2 14 24.06.2005 13:09
[Erledigt] Such Problem mit MySql Datenbank PHP-Fortgeschrittene 9 25.10.2004 20:05
Problem mit Datenbank und Datum (Daten rausholen) PHP Tipps 2004 3 26.08.2004 13:38
Problem beim Füllen von Formularfeldern aus Datenbank PHP Tipps 2004 3 25.06.2004 13:44
Wider ein Datenbank problem!! b++ PHP Tipps 2004 3 21.06.2004 13:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bildupload php eindeutig, bildupload in datenbank

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.