Ankündigung

Einklappen
Keine Ankündigung bisher.

Dateien aufteilen und zusammenfügen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dateien aufteilen und zusammenfügen?

    Hallo,

    ist es möglich per PHP Dateien aufzuteilen (nach Möglichkeit bis zu einer bestimmten Dateigröße), in Split-Dateien zu cachen und diese Dateien dann wieder zusammenzufügen?

    Gibt es dazu eventuell Scripts oder Tutorials?

    Danke für eure Hilfe,
    DannyD
    Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit (Mark Twain).

  • #2
    ?! wozu?

    winzip?

    ich verstehe nicht ganz was du meinst
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

    Kommentar


    • #3
      IDEE:
      Benutze dazu file_get_contents(); und substr();
      Mit file_get_contents(); liest du die Dateien ein, und mit substr(); teilst du sie.
      Danach schreibst du die Teile in verschiedene Dateien.
      (Hab das noch nie gemacht und ich weiß nicht, obs mit binary funktioniert. Die einzelnen Dateien sind im Übrigen wahrscheinlich unbrauchbar)
      Tutorials zum Thema Technik:
      https://pilabor.com
      https://www.fynder.de

      Kommentar


      • #4
        Hab eine vorlufige Lösung, die soweit funktioniert. Das Ganze dient dazu, das Upload Limit meines Hosters zu umgehen. Eigentlich umgehe ich es ja nicht... ich lade ja nur die zulässige Größe hoch ;o)

        split.php

        PHP-Code:
        $datei "test.rar";
        $kbpersplit 1400;

        $offset 0;
        $count 0;


        $size filesize($datei);
        $fp fopen($datei"r");
        $kbpersplit *= 1024;

        echo 
        $size."
        "
        ;
        echo 
        $kbpersplit."
        "
        ;

        while(
        $offset<$size){
            
           
        // Startpunkt setzen
           
        fseek($fp,$offset);
           
           
        // immer 10Kb laden
           
        $data fread($fp,$kbpersplit);
            
           
        // neuen Startpunkt fürs laden berechnen
           
        $offset += $kbpersplit;
           
        $count++;
           
           
        // neue Datei erstellen
           
        $handle fopen ("myfile.s".$count"w");
           echo 
        fwrite($handle$data);
           
        fclose($handle);
        }
        fclose($fp); 
        join.php
        PHP-Code:
        $datei "test.rar";

        $count 1;

        while(
        $count<16){
            
           
        $handle fopen ("file.s".$count"r");
           
        $data fread($handle,filesize ("file.s".$count));
           
        fclose($handle);
           
            
        $fp fopen($datei"a");
           
        fwrite($fp$data);
            
        fclose($fp);
            
           
        $count++;

        Wie gesagt: provisorisch, weil es jedesmal angepasst werden muss. Aber für mich reicht es. Man könnte natürlich auch eine kleine Anwendung daraus machen. Voraussetzung wäre allerdings ein Testserver...


        PS: hab bei einem Uploadlimit von 1.5 MB eine 150MB große Datei auf den Server gespielt (Backups von einigen Projekten)... (ich nutze den Hoster ausschließlich dazu)

        PPS: wer das nutzt, liest sich bitte die AGBs des Hosters durch, ob er nur den Upload großer Dateien verbietet oder allgemein große Dateien auf dem Server...

        Sodale :wink:
        Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit (Mark Twain).

        Kommentar


        • #5
          Wenn du eine Datei nur zum Lesen öffnest, kannst du dir die Positioniererei sparen. Der Code wird dann einfacher
          split.php
          PHP-Code:
          $datei "test.rar";
          $kbpersplit 1024 1000;  // Limit 1MB
          $fp fopen($datei"r");
          $count 0;
          while(
          $data fread($fp$kbpersplit)){
              
             
          $handle fopen ("myfile.s$count""w");
             
          fwrite($handle$data);
             
          fclose($handle);
             
          $count++;
          }
          fclose($fp); 
          join.php:
          PHP-Code:
          $anzahl $_POST['count'];   // Oder woher immer die Anzahl kommt
          $datei "xxx.neu";
          $count 0;
          $handle fopen($datei'a');
          while(
          $count $anzahl){
             
          fwrite($handlefile_get_contents("myfile.s$count"));   
             
          $count++;

          fclose($handle); 
          Gruss
          L

          Kommentar

          Lädt...
          X