failed to open stream....

Moin…

… ich finde den Fehler einfach nicht und brauche mal ein waches Auge.

Ich habe ne „güstige“ IP CAM geholt.
Mit folgendenden Skript kann ich das aktuelle Bild im Verzeichnis der Kamera abfragen.


$string = Sys_GetURLContent("http://192.168.1.20/web/cgi-bin/hi3510/param.cgi?cmd=snap");
echo $string; // AUSGABE--->  var path="/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_20151201122708_003.jpg"
# String bearbeiten um nur die Bezeichnung des Bildes zu erhalten.
$newstring = str_replace(' ','',$string);
$newstring = str_replace('varpath="/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_','',$newstring);
$image = str_replace('"','',$newstring);
echo $image; // AUSGABE---> 20151201122708_003.jpg

Das funktioniert problemlos.

Jetzt zum Problem. Ich möchte das Bild als Media Datei in IPS speichern.


$contents= file_get_contents('http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_'.$image);
$savefile = fopen("C:\IP-Symcon\media\CAM_Carport.jpg", "w");
fwrite($savefile, $contents);
fclose($savefile);

Das schmeisst folgenden Fehler:


Warning:  file_get_contents(http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_20151201122708_003.jpg
): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
 in [TEST\WEBCAM\WEBCAM 2.Versuch] on line 13

Nehme ich jetzt aber aus der Fehlermeldung folgenden Teil:

http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_20151201122708_003.jpg

und führe den Teil des Skiptes so aus, wird das Bild erzeugt und ist unter Media abgelegt.


$contents= file_get_contents('http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_20151201122708_003.jpg');
$savefile = fopen("C:\IP-Symcon\media\CAM_Carport.jpg", "w");
fwrite($savefile, $contents);
fclose($savefile);

Ich komme einfach nicht drauf was ich falsch mache. Hiiiiiiiiilllfeeeee…

Peter

Hi!

Und wenn du es mal so versuchst:

$image = '20151201122708_003.jpg';
$file = 'http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_'.$image;
$contents= file_get_contents($file); 
$savefile = fopen("C:\IP-Symcon\media\CAM_Carport.jpg", "w"); 
fwrite($savefile, $contents); 
fclose($savefile); 

Vielleicht hat file_get_contents Probleme, wenn du die URL in der Funktion zusammensetzt?!

Grüße,
Chris

Moin Chris,
gleiches Problem und ich erhalte die gleiche Fehlermeldung.
Ich bin echt ratlos.

Das wiederum funktioniert:


$file = 'http://192.168.1.20/tmpfs/snap_tmpfs/20151201/IMG001/IMG_chn0_TIMER_MNG_20151201133605_002.jpg';
$contents= file_get_contents($file);
$savefile = fopen("C:\IP-Symcon\media\CAM_Carport.jpg", "w");
fwrite($savefile, $contents);
fclose($savefile);

Sobald ich aber eine $Variable in den String bringe kommt eine Fehlermeldung.

Hinter dem .jpg ist ein Zeilenumbruch. Pack mal nen trim oder so drum :slight_smile:

paresy

Oh man… das war es!!! Der Umbruch war mir zwar aufgefallen, dachte aber nicht das der etwas damit zu tun hat.
1000dank…

Peter