Author Topic: Download von ZIP Dateien funktioniert nicht mehr  (Read 60864 times)

0 Members and 1 Guest are viewing this topic.

Rembrandt

  • Guest
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #60 on: June 08, 2009, 11:58:27 AM »
Ich rede doch die ganze Zeit schon davon, das wir die download.php benötigen! Die wurde ja nun mal geändert! Sonst suchen wir ja in drei Jahren noch!
ich habe ja x posts weiter oben schon geschrieben das der download mittlels $post oder $get der download.php übergeben wird.
wie auch immer, ich habe auf seinen server den download getestet, 27MB ohne probleme xmal.

mfg Andi

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #61 on: June 08, 2009, 03:48:14 PM »
Genau, hatte ich ja auch, schon ganz am Anfang!
Ging zig mal, ohne jedes Problem!


Offline polarfuchs

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #62 on: June 09, 2009, 07:48:02 AM »
Vielen Dank Jungs, daß ihr da mal reinschauen wollt.
Ich kann mich beim besten Willen nicht daran erinnern, an dieser Datei etwas verändert zu haben, wozu auch? Es gab ja nie ein Problem (bis jetzt halt). Aber ich kann meine Hand nicht dafür ins Feuer legen, daß ich im Rahmen irgendeines Mods, den ich eingebaut habe, nicht doch mal an der Datei eine Änderung vornehmen mußte. Hier ist sie:

Quote
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: download.php                                         *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.6                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/

$main_template = 0;

$nozip = 1;
define('GET_CACHES', 1);
define('ROOT_PATH', './');
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();

if (!function_exists('file_get_contents')) {
  function file_get_contents($filename, $incpath = false, $resource_context = null) {
    if (false === $fh = fopen($filename, 'rb', $incpath)) {
      user_error('file_get_contents() failed to open stream: No such file or directory', E_USER_WARNING);
      return false;
    }

    clearstatcache();
    if ($fsize = @filesize($filename)) {
      $data = fread($fh, $fsize);
    } else {
      $data = '';
      while (!feof($fh)) {
        $data .= fread($fh, 8192);
      }
    }

    fclose($fh);
    return $data;
  }
}

function fix_file_path($file_path) {
  if (!is_remote_file($file_path) && !file_exists($file_path)) {
    $file_path = preg_replace("/\/{2,}/", "/", get_document_root()."/".$file_path);
  }
  return $file_path;
}

function send_file($file_name, $file_path) {
  @session_write_close();

  header("Cache-Control: no-cache, must-revalidate");
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

  if (get_user_os() == "MAC") {
    header("Content-Type: application/x-unknown\n");
    header("Content-Disposition: attachment; filename=\"".$file_name."\"\n");
  }
  elseif (get_browser_info() == "MSIE") {
    $disposition = (!eregi("\.zip$", $file_name)) ? 'attachment' : 'inline';
    header("Content-Disposition: $disposition; filename=\"".$file_name."\"\n");
    header("Content-Type: application/x-ms-download\n");
  }
  else {
    header("Content-Disposition: attachment; filename=\"".$file_name."\"\n");
    header("Content-Type: application/octet-stream\n");
  }

  $file_path = fix_file_path($file_path);

  if (!is_remote_file($file_path) && ($filesize = filesize($file_path)) > 0) {
    header("Content-Length: ".$filesize."\n\n");
  }

  @readfile($file_path);
}

$file = array();

if ($action == "lightbox") {
  if (empty($user_info['lightbox_image_ids']) || !function_exists("gzcompress") || !function_exists("crc32")) {
    redirect("lightbox.php");
  }

  if (!check_download_token($user_info['lightbox_image_ids'])) {
    redirect("lightbox.php");
  }

  $image_id_sql = str_replace(" ", ", ", trim($user_info['lightbox_image_ids']));
  $image_ids = array();
  $sql = "SELECT image_id, cat_id, image_media_file, image_download_url
          FROM ".IMAGES_TABLE."
          WHERE image_active = 1 AND image_id IN ($image_id_sql) AND cat_id NOT IN (".get_auth_cat_sql("auth_viewimage", "NOTIN").", ".get_auth_cat_sql("auth_viewcat", "NOTIN").", ".get_auth_cat_sql("auth_download", "NOTIN").")";
  $result = $site_db->query($sql);

  if ($result) {
    include(ROOT_PATH."includes/zip.php");
    $zipfile = new zipfile();
    $file_added = 0;
    while ($image_row = $site_db->fetch_array($result)) {
      if (!empty($image_row['image_download_url'])) {
        if (is_remote_file($image_row['image_download_url']) || is_local_file($image_row['image_download_url'])) {
          $file_path = $image_row['image_download_url'];
          $file_name = basename($image_row['image_download_url']);
        }
      }
      elseif (is_remote($image_row['image_media_file'])) {
        $file_path = $image_row['image_media_file'];
        $file_name = get_basefile($image_row['image_media_file']);
      }
      else {
        $file_path = MEDIA_PATH."/".$image_row['cat_id']."/".$image_row['image_media_file'];
        $file_name = $image_row['image_media_file'];
      }

      if (!empty($file_path)) {
        @set_time_limit(120);
        $file_path = fix_file_path($file_path);
        if (!$file_data = @file_get_contents($file_path)) {
          continue;
        }
        $zipfile->add_file($file_data, $file_name);
        $file_added = 1;
        unset($file_data);
        $image_ids[] = $image_row['image_id'];
      }
    }

    if ($file_added) {
      if ($user_info['user_level'] != ADMIN) {
        $sql = "UPDATE ".IMAGES_TABLE."
                SET image_downloads = image_downloads + 1
                WHERE image_id IN (".trim(implode(", ", $image_ids)).")";
        $site_db->query($sql);
      }

      $zipfile->send(time().".zip");
      exit;
    }
    else {
      redirect("lightbox.php?empty=1");
    }
  }
}
elseif ($image_id) {
  if (isset($HTTP_GET_VARS['size']) || isset($HTTP_POST_VARS['size'])) {
    $size = (isset($HTTP_GET_VARS['size'])) ? intval($HTTP_GET_VARS['size']) : intval($HTTP_POST_VARS['size']);
  }
  else {
    $size = 0;
  }

  $sql = "SELECT image_id, cat_id, user_id, image_media_file, image_download_url, image_downloads
          FROM ".IMAGES_TABLE."
          WHERE image_id = $image_id AND image_active = 1";
  $image_row = $site_db->query_firstrow($sql);

  if (!$image_row || !check_permission("auth_viewcat", $image_row['cat_id']) || !check_permission("auth_viewimage", $image_row['cat_id'])) {
    redirect($url);
  }
  else {
    if (!check_permission("auth_download", $image_row['cat_id'])) {
      redirect($url);
    }

    if (!check_download_token($image_row['image_id'])) {
      echo "Hotlinking is not allowed";
     exit;
     redirect("index.php");
    }
  }

  $remote_url = 0;
  if (!empty($image_row['image_download_url'])) {
    if (is_remote_file($image_row['image_download_url']) || is_local_file($image_row['image_download_url'])) {
      ereg("(.+)\.(.+)", basename($image_row['image_download_url']), $regs);
      $file_name = $regs[1];
      $file_extension = $regs[2];

      $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;
      $file['file_path'] = dirname($image_row['image_download_url'])."/".$file['file_name'];
    }
    else {
      $file['file_path'] = $image_row['image_download_url'];
      $remote_url = 1;
    }
  }
  elseif (is_remote_file($image_row['image_media_file'])) {
    ereg("(.+)\.(.+)", get_basefile($image_row['image_media_file']), $regs);
    $file_name = $regs[1];
    $file_extension = $regs[2];

    $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;
    $file['file_path'] = dirname($image_row['image_media_file'])."/".$file['file_name'];
  }
  else {
    ereg("(.+)\.(.+)", get_basefile($image_row['image_media_file']), $regs);
    $file_name = $regs[1];
    $file_extension = $regs[2];

    $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;
    $file['file_path'] = (is_local_file($image_row['image_media_file'])) ? dirname($image_row['image_media_file'])."/".$file['file_name'] : MEDIA_PATH."/".$image_row['cat_id']."/".$file['file_name'];
  }

  if ($user_info['user_level'] != ADMIN) {
    $sql = "UPDATE ".IMAGES_TABLE."
            SET image_downloads = image_downloads + 1
            WHERE image_id = $image_id";
    $site_db->query($sql);
  }

  if (!empty($file['file_path'])) {
    @set_time_limit(120);
    if ($remote_url) {
      redirect($file['file_path']);
    }

    if ($action == "zip" && !eregi("\.zip$", $file['file_name']) && function_exists("gzcompress") && function_exists("crc32")) {
      include(ROOT_PATH."includes/zip.php");
      $zipfile = new zipfile();
      $zipfile->add_file(file_get_contents($file['file_path']), $file['file_name']);

      $zipfile->send(get_file_name($file['file_name']).".zip");
    } else {
        send_file($file['file_name'], $file['file_path']);
    }
    exit;
  }
  else {
    echo $lang['download_error']."\n<!-- EMPTY FILE PATH //-->";
    exit;
  }
}
else {
  echo $lang['download_error']."\n<!-- NO ACTION SPECIFIED //-->";
  exit;
}

exit;
?>

Offline honda2000

  • 4images Guru
  • *******
  • Posts: 3.263
    • View Profile
    • Wir machen Internet!
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #63 on: June 10, 2009, 02:48:53 PM »
Freunde, schlagt mich nicht tot, aber:
1. gibts keine Schleife
2. wird an die download + (gegebenfalls) includes/zip.php übergeben

Kurz:
Klickt man den Download-Button, übergibt man an die download.php, die sagt:
lad das Bild und schicke es dem Client
Klickt man den Download-Zip-Button, übergibt man auch an die download.php, die sagt:
packe das Bild aus dem Ordner als ZIP-File.

Ich kann keine Schleife wie:
exestiert der File nicht, erstelle ihn
exestiert der File, dann nutze den auch
entdecken!

Offline polarfuchs

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #64 on: June 12, 2009, 07:07:49 PM »
und das heißt jetzt was im Klartext? Alles so, wie's sein soll?

Offline polarfuchs

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #65 on: June 15, 2009, 08:34:02 AM »
Also hat niemand mehr eine Idee, woran es liegen kann, daß verschiedene User korrupte oder beschädigte Zips runterladen, alle anderen aber nicht?

Offline nobby

  • 4images Guru
  • *******
  • Posts: 2.873
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #66 on: June 15, 2009, 08:47:45 AM »
@polarfuchs

das ist auch nicht so Einfach, weil das bei Dir ein bisschen Kurios ist.

Also, geb uns noch ein wenig Zeit zu überlegen   :roll: wir Arbeiten daran  :wink:

nobby

Rembrandt

  • Guest
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #67 on: June 22, 2009, 07:00:46 PM »
@polarfuchs, hat sich das schon erledigt?

Offline peterwagner11

  • Pre-Newbie
  • Posts: 1
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #68 on: June 26, 2009, 11:25:03 AM »
Hallo Polarfuchs,
ich habe ein Problem was vermutlich diesselbe Ursache hat. Bei mir werden dateien die auf dem Strato Server liegen ebenfalls nicht mehr korrekt übermittelt. Ich habe nun folgendes herausgefunden:
Der Strato Server komprimiert die Dateien die angefragt werden. Manchmal. Nicht immer. Vermutlich abhängig von seiner Auslastung. Dies führt dazu dass die Dateien mit dem gzip komprimiert werden. die dateien werden letzlich nicht wriklich komprimiert. Aber sie werden als komprimiert übermittelt. Quasi wie ein zip Archiv, das die Datei enthält, diese ist aber nicht komprimiert. Das hat aber zur Folge dass die Datei eingebettet ist in ein Zip Archiv, damit hat die datei mehr bytes als das original. Man kann dies übrigens testen, indem man so eine Datei in eine .zip Datei umbenennt und dann entpackt. Anschließend hat man dann die Datei im orignial.

man erkennt dies auch am Header der übermittelten Datei. Diese enthält dann den Hinweis auf gzip. Wenn ein Browser diese Datei abruft dann kann er damit normalerweise umgehen. Die Idee ist dass ein Webbrowser eine Datei anfragt z.B. ein html -Dokument, der Server antwortet indem er diese Datei komprimiert übermittelt, sie hat dann z.B. nur noch die halbe Größe und damit ist sie schneller übermittelt, und der browser entpackt sie einfach wieder.

Die wird angegeben durch die "content encoding". Leider wiess ich nicht ob es eine Einstellung gibt vielleicht über htaccess mit der man für die Dateien eines verzeichnisses auf dem Server diese Komprimierung unterdrücken kann.

Vielleciht weiss jemand von euch das. Vielen Dank und viele Grüße

Peter

PS: Traurig dasstrotz mehrfacher kontakaufnahmen zu strato keiner von den technikern mir diese info geben konnte und diese scheinbar auch gar nicht wissen dass sie seit einiger zeit diese Komprimierung verwenden.

Offline polarfuchs

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #69 on: August 12, 2009, 08:45:45 AM »
Hallo Peter, hallo Team,
erst mal danke für die Nachricht von Peter - da fühlt man sich doch gleich nicht mehr so alleine mit seinem Problem. Das mit dem gzip klingt ja alles ganz nett, aber wie kann man das abstellen, so es denn wirklich die Ursache allen Übels sein sollte??

Und nein, es hat sich nicht erledigt, der Fehler tritt nach wie vor auf. Und immer mit großen Dateien (über 10MB).
Heute hat sich wieder ein Mitglied beschwert und die Mitgliedschaft gekündigt, weil sie nichts herunterladen kann. Sie hat mir einen Screenshot von ihrem Download Versuch übermittelt, auf dem zu sehen war, daß sie mit IE herunterlädt (obwohl ich ihr schon mehrfach empfohlen habe, FF zu probieren) und beim DL die Meldung erhält "Internet Explorer cannot download ... Content decoding has failed". DAS war zur Abwechslung mal wieder einen neue Fehlermeldung. Bisher kamen ja immer nur Fehlermeldungen bezüglich des Packens und Entpackens via WinRAR. Und es betraf wieder mal mehrere größere Dateien (ca. 24-50 MB). Dieses Mitglied ist (war) übrigens diejenige, die eigentlich immer Probleme hatte. Ein anderes Mitglied hat mir mitgeteilt, daß sie, nachdem sie von IE7 zu IE8 gewechselt ist, jetzt alles problemlos runterladen kann. Aber es melden sich halt auch FF-Benutzer, die auch Schwierigkeiten haben. Ich kann's echt nirgendwo festmachen.

Auf der Suche nach diesem "Content decoding has failed" bin ich auf ein anderes Forum gestoßen, wo auch jemand haarscharf die gleichen Probleme hat wie ich, allerdings innerhalb seines eigenen Forums, und dort auch mit den  Downloads. Es wurden alle möglichen Vorschläge gemacht und schlussendlich dann irgendwas von chmod des Verzeichnisses ändern gemurmelt. Das bringt mich zu der Frage, welchen chmod mein Verzeichnis haben sollte, in dem die ZIP Dateien liegen?? Meine ZIP Verzeichnisse (auch die von früher, die alle reibungslos funktioniert haben, aber wesentlich kleine ZIPs enthalten) haben alle 755. Ist das ok?

Das ist das Forum und der entsprechende Thread:
http://www.simplemachines.org/community/index.php?topic=224627.0

Ich bin echt kurz davor, alles hinzuschmeissen und meine Galerie zu löschen, so nervt mich das. Wer will schon Mitglied in einer DL-Galerie werden, wo es vor "Hilfe, ich kann nichts runterladen" Kommentaren nur so wimmelt?!





Offline polarfuchs

  • Newbie
  • *
  • Posts: 30
    • View Profile
Re: Download von ZIP Dateien funktioniert nicht mehr
« Reply #70 on: August 19, 2009, 10:18:33 AM »
Hallo Team!
Könnte mal jemand ein Statement dazu abgeben, ob diese korrupten zip Dateien auf der User Seite vielleicht auch daher rühren können, daß ich auf meiner Seite Vista64 und die neueste Version von WinRAR (64bit) zum zippen verwende, viele User aber noch mit Windows XP 32bit und möglicherweise alten Unzip Programmen (auch 32bit) runterladen und entpacken wollen - könnte da der Hase im Pfeffer liegen??

Vielleicht könnte DAS ja der springende Punkt sein? Es verdichten sich die Hinweise, daß diese korrupten Zip-Dateien vorwiegend bei Windows XP Usern auftreten.

Ich würde deshalb gerne mal versuchen, über mein Vista Dateien mit einem 32bit Zip Programm zu packen - kann mir jemand sagen, welches Zip Programm ich dafür nehmen soll?

« Last Edit: August 20, 2009, 09:24:35 AM by polarfuchs »