pablo: CURL - prüfen, ob ".doc" existiert

Hallo zusammen,

ich habe folgendes Problem:

Mittel "curl" würde ich gerne prüfen, ob eine Datei existiert. In meinem Fall, handelt es sich um eine Word-Datei (.doc), welche er "downloaden" würde, aber im Header 404 ausgibt?

$ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
  curl_setopt($ch, CURLOPT_TIMEOUT, 50);
  curl_setopt($ch, CURLOPT_NOBODY, true);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $response =curl_exec($ch);
  $curl_info = curl_getinfo($ch,CURLINFO_HTTP_CODE);
  curl_close($ch);

Vielen lieben Dank im Voraus.

  1. Hi!

    Mittel "curl" würde ich gerne prüfen, ob eine Datei existiert.

    Das geht genau genommen mit HTTP nicht, weil HTTP nicht mit Dateien arbeitet. Du kannst höchstens einem Webserver Requests schicken und die Antwort auswerten. Ob eine Datei existiert kannst du nur schlussfolgern, wenn du die Konfiguration kennst und genau weißt, dass eine bestimmte URL 1:1 auf eine Datei gemappt wird.

    In meinem Fall, handelt es sich um eine Word-Datei (.doc), welche er "downloaden" würde, aber im Header 404 ausgibt?

    Was soll ich mit der Frage anstellen? Ob es eine 404-er Antwort gibt, musst du schon selbst herausfinden. Und falls dies der Fall ist, dann wirst du irgendwas falsch machen. Vielleicht ist es die URL, die nicht stimmt, vielleicht erwartet der Server irgendwelche Header, die du nicht mitsendest (obwohl es dann eher eine Zugriffsverweigerung gibt).

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    Warum FOLLOWLOCATION? Kannst du nicht die eigentliche URL angeben?

    Lo!

    1. Vielen Dank,

      also es lag an einem Authentifizierungsproblem.

      Klappt.Prima

  2. Moin!

    Mittel "curl" würde ich gerne prüfen, ob eine Datei existiert. In meinem Fall, handelt es sich um eine Word-Datei (.doc), welche er "downloaden" würde, aber im Header 404 ausgibt?

    Bei 404 existiert die Datei also nicht. Wo ist dein Problem?

    PS: Es gibt übrigens curl_setopt_array().

    $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
      curl_setopt($ch, CURLOPT_TIMEOUT, 50);
      curl_setopt($ch, CURLOPT_NOBODY, true);
      curl_setopt($ch, CURLOPT_HEADER, true);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      $response =curl_exec($ch);
      $curl_info = curl_getinfo($ch,CURLINFO_HTTP_CODE);
      curl_close($ch);

    - Sven Rautenberg