php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.09.2010, 18:11  
Neuer Benutzer
 
Benutzerbild von rimba
 
Registriert seit: 26.06.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
rimba befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Bilder aus MySQL und im Filesystem speichern

Hallo,

ich habe in einer MySQL-DB eine Tabelle mit JPEG's
und eine zweite Tabelle mit zugehörigen Personendaten.
Jetzt möchte ich mit einem PHP Script alle Bilder auslesen, Nachnamen als Dateinamen vergeben und im Filesystem als JPEG abspeichern.

Dazu benutze ich erstens die Datei showpic.php

PHP-Code:
  $host "1.2.3.4";$user "xxx";$pass "yyy";$data "zzz";

  
$CID mysqli_connect($host,$user,$pass);
  
$DID mysqli_select_db($CID,$data);
    
  
$id $_GET['id'];
  if(!
$id) exit;

  
$SQL="SELECT B_Data, B_Type FROM BILD WHERE B_P_Nr = $id";
  
  
$result mysqli_query($CID,$SQL);
  if(!
$result) exit;

  
$row=mysqli_fetch_array($result,MYSQL_ASSOC);
  
header("Content-type: {$row['B_Type']}");
  echo 
$row['B_Data']; 
um die Bilder aus der Datenbank darstellen zu können und zweitens das script schreiben.php

PHP-Code:
  $host "1.2.3.4";$user "xxx";$pass "yyy";$data "zzz";

  
$SQL "SELECT B_P_Nr,CONCAT(P_Nachname,'.jpg') ";
  
$SQL.= "FROM PERSON INNER JOIN BILD ON P_Nr = B_P_Nr ";
  
  
$CID mysqli_connect($host,$user,$pass);
  
$DID mysqli_select_db($CID,$data);
  
$RID mysqli_query($CID,$SQL);
    
   while(
$ERG mysqli_fetch_array($RID,MYSQL_NUM))
       {
       
       
/* Testzeile zur Ausgabe im Browser*/
       
echo "<img src='showpic.php?id=$ERG[0]' />";

       
ob_start();
       
$fp fopen("showpic.php?id=$ERG[0]""rb");
       
fpassthru($fp);
       
fclose($fp);
       
$file ob_get_contents();
       
ob_end_clean();

       
$fp fopen("$ERG[1]""wb+");
       
fwrite($fp$file);
       
fclose($fp);
 
       } 
um auf das Filesystem des WEB-Servers (xampp-lite)
zu schreiben.
Die Bilder werden nun richtig aus der DB gelesen (weil sie mit der Testausgabe korrekt dargestellt werden).
Im Verzeichnis liegen dann aber nur unbrauchbare Dateien (allerdings mit korrektem Dateinamen).
Wenn ich anstelle von showpic.php ein Testbild.jpg (aus dem Dateisystem) lese und schreibe funktioniert das Script.
Wer kann mir helfen ?
rimba ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.09.2010, 18:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wieso schreibst Du nicht gleich die Daten aus der DB ins File?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.09.2010, 18:21  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von rimba Beitrag anzeigen
PHP-Code:
       $fp fopen("showpic.php?id=$ERG[0]""rb"); 
PHP glaubt, bei "showpic.php?id=$ERG[0]" handelt es sich um eine lokale Datei und sucht im Dateisystem eine Datei dieses Namens.

Du glaubst, bei bei "showpic.php?id=$ERG[0]" handelt es sich um eine URL, auf die mittels einer HTTP-Anfrage zugegriffem wird.

Einer von euch beiden irrt sich.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 14.09.2010, 18:32  
Neuer Benutzer
 
Benutzerbild von rimba
 
Registriert seit: 26.06.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
rimba befindet sich auf einem aufstrebenden Ast
Standard

okay, und wie könnt ich meinen Irrtum dann auflösen oder beseitigen?
rimba ist offline   Mit Zitat antworten
Alt 14.09.2010, 18:33  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
$fp fopen("http://example.com/showpic.php?id=$ERG[0]""rb"); 
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 14.09.2010, 18:40  
Neuer Benutzer
 
Benutzerbild von rimba
 
Registriert seit: 26.06.2009
Beiträge: 8
PHP-Kenntnisse:
Fortgeschritten
rimba befindet sich auf einem aufstrebenden Ast
Standard

na dann doch so einfach.hat prima funktioniert.
Vielen Dank (gibt also doch keine schlaflose Arbeitsnacht)
rimba ist offline   Mit Zitat antworten
Alt 14.09.2010, 19:26  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Wieso schreibst Du nicht gleich die Daten aus der DB ins File?
Diese Frage bleibt... oder ist die URL tatsächlich extern (und warum läuft sie dann mit ID's aus der lokalen Datenbank)?
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 14.09.2010, 19:28  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Diese Frage bleibt... oder ist die URL tatsächlich extern
Kann ja eigentlich nicht - wenn er den Pfad relativ angibt, um das Bild im Browser anzeigen zu lassen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.09.2010, 19:33  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich vermute es wird gerade umgestellt von Speicherung in der Datenbank auf Speicherung im Dateisystem.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 14.09.2010, 23:45  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Du gehst da ein wenig arg kompliziert vor...

PHP-Code:
  $SQL "SELECT B_Data,B_P_Nr,CONCAT(P_Nachname,'.jpg') AS B_Name";

//...

   
while($ERG mysqli_fetch_array($RID,MYSQL_NUM))
       {
            
file_put_contents($ERG['B_Name'], $ERG['B_Data']);
       } 
So abgeändert sollte es auch funktionieren und du reduzierst den gesamten Schleifeninhalt auf eine Zeile und gewinnst massig Performance wiel nicht für jedes Bild ein neuer HTTP-Request gestartet wird.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Antwort


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
Daten in MySQL speichern sascha-graf1 Datenbanken 10 29.08.2010 18:21
Image name nach Rename in MySQL Db speichern Zero0090 PHP Tipps 2010 11 30.07.2010 12:01
Daten in Mysql datenbank speichern keppi PHP Tipps 2009 5 23.07.2009 17:29
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
MySQL Antwort als CSV speichern grisu PHP Tipps 2008 5 11.04.2008 17:28
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Zahlen in MySQL DB speichern PHP Tipps 2005 2 29.04.2005 19:36
Bilder speichern statt anzeigen... PHP Tipps 2005 3 25.04.2005 15:22
Bilder in MySQL Datenbanken 5 03.04.2005 04:53
[Erledigt] Bilder mit Mysql verknüpfen Datenbanken 7 26.03.2005 11:15
Bilder - Upload - Email - MySQL PHP Tipps 2004 10 20.10.2004 15:48
[Erledigt] Bild in MySQL DB speichern Datenbanken 2 19.09.2004 23:16
Bilder über php inMySqlDB speichern PHP Tipps 2004 1 10.09.2004 23:11
in mysql datenbank speichern. PHP Tipps 2004 9 08.09.2004 21:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-fortgeschrittene/71842-erledigt-bilder-aus-mysql-und-im-filesystem-speichern.html, mysql bilder speichern, bilder in filesystem speichern, bild aus datenbank lesen und auf dateisystem speichern, vbulletin bilder im dateisystem, bild in mysql oder dateisystem, mysql filesystem, showpic php, php skript bild in mysql datenbank schreiben, bild in dateisystem ablegen?, datei pfad in mysql db datenbank schreiben, php picture filesystem, bild in sql speichern, web bilder speichern filesystem oder datenbank, php image im filesystem speichern, image in sql speichern, php daten in filesystem speichern, bild in mysql schreiben, bilder in mysql ablegen, mysql daten im filesystem

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:33 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