PHP Dateigrößer externer PDF-Datei ermitteln

ccman

Cadet 3rd Year
Registriert
Jan. 2012
Beiträge
53
Gibt es eine Möglichkeit, die Dateigröße einer extern liegenden PDF-Datei zu ermitteln, ohne die PDF-Datei runterladen zu müssen?

Ich möchte eigentlich nur testen, ob einige PDF-Links funktionieren oder ob sie einen Fehler 404 ausgeben. Oder vielleicht gibt es dafür eine einfachere Möglichkeit.
 
Hi,

wenn es nur um die Funktion der Links geht ist die Größe der PDF-Datei doch vollkommen egal, oder verstehe ich da etwas falsch? Einfach gucken, ob du bei einem Aufruf als Antwort 404 kriegst reicht doch in dem Fall aus. Wenn du keinen Error kriegst funktioniert der Link.

Oder verstehe ich das Problem gerade falsch? :)

VG,
Mad
 
Hi,

@bruteforce9860

File Exists geht aber nur mit lokalen Dateien und nicht mit URLs oder irre ich? Wenn er also testen will, ob eine Verlinkung auf einen fremden Server funktioniert klappt das damit erstmal nicht.

Wenn dann müsste man eine Methode benutzen wie

Code:
<?php
function url_exists($url) {
    // Version 4.x supported
    $handle   = curl_init($url);
    if (false === $handle)
    {
        return false;
    }
    curl_setopt($handle, CURLOPT_HEADER, false);
    curl_setopt($handle, CURLOPT_FAILONERROR, true);  // this works
    curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox   
    curl_setopt($handle, CURLOPT_NOBODY, true);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
    $connectable = curl_exec($handle);
    curl_close($handle);  
    return $connectable;
}

VG,
Mad
 
Du musst einen HTTP-Head request abschicken und nicht die ganze PDF-Datei vom Server runterladen wie Madman1209 es beschreibt.

z.B.
telnet server port
Code:
HEAD /datei.pdf HTTP/1.1
Host: www.server.name
Connection: close

Dann kommt in den Attributen der ETAG und Content-Length zurück.
 
Entweder den 404 HTTP Status abfragen oder den Response Header auswerten (Content-length).
 
Zurück
Oben