Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrere Bilder mit PHP in Content einfügen

Frage Entwicklung PHP

Mitglied: SamTrex

SamTrex (Level 1) - Jetzt verbinden

11.06.2010, aktualisiert 12.06.2010, 5081 Aufrufe, 4 Kommentare

Es geht darum Bilder in den Content einzubinden die NICHT direkt aus dem Netz erreichbar sind / wie der Download einer geschützren Datei z.B.

Hallo zusammen,
hier erstmal der Stand.

Auf dem Webserver läuft die Domain unter .../user/domain/www/ INHALT
Die Bilder die ich anzeigen möchte liegen unter .../user/domain/hide/ ... > Dieses Verzeichnis ist aus dem Web nicht erreichbar.

Nun das Problem:
Ich möchte gerne eine kleine Galerie haben - kein Akt. Aber es sollen nur angemeldete Benutzer diese Bilder sehen können!
Dachte mir der Weg sei der einfachste....
01.
header("content-type: image/jpeg"); //Mime Type setzen 
02.
$bilder = get_files_from_dir("../hide/fotos/test",true); //Pfade zu den Bildern ermitteln 
03.
foreach ($bilder as $file) { //Pfad für jedes einzelne Bild aufrufen 
04.
	echo '<img src="' . readfile($file) . '"><br><br>'; //Bilder einfach untereinanderausgeben .... 
05.
06.
 
07.
function get_files_from_dir() { //par1 = Pfad; par2 = recrusive (optional) >> Alle gefundenen Bilderpfade in ein Array schreiben 
08.
	$path = func_get_arg(0); 
09.
	$array = array(); 
10.
	$dir = opendir($path); 
11.
	while($content = readdir($dir)) { 
12.
		if($content!="." && $content!=".." && is_dir($path . "/" . $content)) { 
13.
			if(func_num_args()==2 && func_get_arg(1)==true) { 
14.
				$array = array_merge($array, get_files_from_dir($path . "/" . $content)); 
15.
16.
17.
		elseif($content!="." && $content!="..") { 
18.
			array_push($array,$path . "/" . $content); 
19.
20.
	}  
21.
	closedir($dir); 
22.
	return $array
23.
}
... leider kann ich so immer nur ein Bild anzeigen, es sollen aber alle sein!
Hab nun schon den ganzen Abend gegoogelt

Kennt hier wer eine Lösung?
Danke schonmal ...

MfG Sam
Mitglied: kopie0123
11.06.2010 um 23:47 Uhr
Guten Abend!

was kommen denn für Fehlermeldungen?
Arrayinhalte überall korrekt?

Gruß
Bitte warten ..
Mitglied: SamTrex
12.06.2010 um 00:30 Uhr
Hallo,
es kommen gar keine. Der Code funktioniert ja so wie er oben ist.
Allerdings stellt er nur ein einzelnes Bild auf einer Seite dar.

Ich möchte aber mehrere Bilder in einen bestehenden Content einbauen.
Einziger Haken ist halt das ich nicht direkt auf die Bilder zugreifen kann ala: <img scr="....."> sondern sie halt als Binärdaten in einer Variablen liegen.

MfG Sam
Bitte warten ..
Mitglied: dog
12.06.2010 um 03:55 Uhr
Du musst einen sehr netten Browser haben, wenn du tatsächlich ein Bild siehst

header("content-type: image/jpeg");

Hier sagst du, dass der Browser ein Bild erwarten soll.

echo '<img src="

Und hier fängst du dann auf einmal mit HTML an...

Aber gut, du hast zwei Möglichkeiten:

a) Die Bilder in HTML einbetten.
Von der Methode ist praktisch immer abzuraten, da du so eine riesige HTML-Datei bekommst und es nicht jeder Browser mitmacht

b) Erst eine HTML-Seite ausgeben, dann die Bilder laden:

01.
#===== images.php 
02.
<html><body> 
03.
<?php 
04.
 
05.
	function listFilesRecursiveCallback($startDir,$callBackFunction
06.
07.
		if(substr($startDir,-1) == '/'
08.
			$startDir = substr($startDir, 0, -1); 
09.
			 
10.
		$files = glob($startDir.'/*'); 
11.
		 
12.
		foreach ($files as $file) { 
13.
			if(!is_readable($file)) 
14.
				continue
15.
			if(is_dir($file)) 
16.
				listFilesRecursiveCallback($file,$callBackFunction); 
17.
			else 
18.
				$callBackFunction(substr($file, strlen($startDir))); 
19.
20.
21.
	 
22.
	listFilesRecursiveCallback(dirname(__FILE__).'/../images',function($filename) { 
23.
		echo '<img src="file.php?img='.urlencode($filename).'" alt="" /><br/>'
24.
	}); 
25.
 
26.
?> 
27.
</body></html> 
28.
#====== file.php 
29.
<?php 
30.
 
31.
	if(empty($_GET['img'])) { 
32.
		header('HTTP/1.1 400 Bad Request'); 
33.
		exit(0); 
34.
35.
	 
36.
	$filename = urldecode($_GET['img']); 
37.
	 
38.
	if(strpos($filename, "\x00") !== false) { 
39.
		header('HTTP/1.1 400 Bad Request'); 
40.
		exit(0); 
41.
42.
	 
43.
	if(strpos($filename, '..') !== false) { 
44.
		header('HTTP/1.1 400 Bad Request'); 
45.
		exit(0); 
46.
47.
	 
48.
	if($filename[0] == '/')?  
49.
		$filename = substr($filename, 1); 
50.
	 
51.
	$file = dirname(__FILE__).'/../images/'.$filename
52.
	 
53.
	if(!file_exists($file) || !is_readable($file)) { 
54.
		header('HTTP/1.1 404 Not Found'); 
55.
		exit(0); 
56.
57.
	 
58.
	header('Content-Type: image/jpeg'); 
59.
	readfile($file); 
60.
 
61.
?>
(PHP 5.3 Syntax, ungetestet und ausbaufähig)
Bitte warten ..
Mitglied: SamTrex
12.06.2010 um 12:17 Uhr
Hallo dog...

UPS > hast natürlich vollkommen recht > peinlich peinlich .... (Ich glaube es war FF oder Crome > Dieser Halunke)
Danke für den Code, habe es auf meinen abgestimmt und läuft prima! Wusste gar nicht das man das auch so machen kann....
Ich arbeite jetzt zwar schon ein kleines Weilchen mit PHP, aber es ist ja ein nicht wirklich kleines Thema.


DANKE!

MfG Sam
Bitte warten ..
Ähnliche Inhalte
Grafik
Stapelverarbeitung Bild in neues Bild einfügen
Frage von KodaCHGrafik3 Kommentare

Guten Morgen Ich habe hier einen Ordner mit ganz vielen Bildern. Die grösse ist komplett unterschiedlich. Nun habe ich ...

Microsoft Office
Bilder in Excel automatisch einfügen
gelöst Frage von GundelputzMicrosoft Office2 Kommentare

Hallo alle da draussen, ich möchte in Excel ein Angebot erstellen welches mir auf Grund der Artikelnummer ein Bild ...

PHP
PHP-Bild anzeigen
gelöst Frage von max.der.baboPHP4 Kommentare

Hallo Community, Meine Frage richtet sich an die PHP-ler. Hab ein Loginskript, dass eine Session erstellt, mit der man ...

Microsoft Office
Excel 2016 Bilder in Kommentare einfügen
gelöst Frage von Florian86Microsoft Office2 Kommentare

Hallo, wie macht man das nun in Excel 2016? bis 2013 konnte man es ja so lösen MfG Florian86

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 4 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 8 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 8 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 12 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...