Zip file maken...

Status
Niet open voor verdere reacties.

JB'tje

Gebruiker
Lid geworden
31 mei 2004
Berichten
556
Hallo,

Ik ben momneteel bezig met een backup script voor mijn database (kan door cronjob worden geactiveerd)
Nu is het zo dat de file (.swl) ongeveer 6 keer zo klein word indien het in een zip file word geplaatst....

Darom zou ik graag willen weten hoe ik een file, de hyperlink naar de file zit in de var: $sql_file

alvast bedankt,
Jeffrey
 
ja, daar heb ik wel wat aan, heel erg bedankt...

ik zit nu nog met een probleempje (op 't ogenblik) ik wil een mail versturen met attachment en ik gebruik dit script nu:
PHP:
  // subject of the E-mail
  $subject = 'MySQL Database Backup - '. date($E_mail_subject);
  $message = '';

  $fileatt_type = filetype($zipname);

  $fileatt_name = $zipname;

  // Read the file to be attached ('rb' = read binary)
  $file = fopen($zipname,'rb');
  $data = fread($file,filesize($zipname));
  fclose($file);

  // Generate a boundary string
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

  // Add the headers for a file attachment
  $headers = "From: $mailfrom";
  $headers .= "\nMIME-Version: 1.0\n" ."Content-Type: multipart/mixed;\n" ." boundary=\"{$mime_boundary}\"";

  // Base64 encode the file data
  $data = chunk_split(base64_encode($data));

  // Add a multipart boundary above the plain message
  $message = "This is a multi-part message in MIME format.\n\n" .
             "--{$mime_boundary}\n" .
             "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
             "Content-Transfer-Encoding: 7bit\n\n" .
             $E_message . "\n\n";

  // Add file attachment to the message
  $message .= "--{$mime_boundary}\n" .
              "Content-Type: {$fileatt_type};\n" .
              " name=\"{$fileatt_name}\"\n" .
              "Content-DiSPosition: attachment;\n" .
              " filename=\"{$fileatt_name}\"\n" .
              "Content-Transfer-Encoding: base64\n\n" .
              $data . "\n\n" .
              "--{$mime_boundary}--\n";

  // Send the message
  $ok = @mail($mailto, $subject, $message, $headers);
  if(!$ok)
  {
    $error['mail'] = 'The zip file ('.$zipname.') could not be sent to ('.$mailto.').<br>';
  }
Ik ontvang de E-mail wel, en kan ook zien dat er een bijlage bij zit, maar de knop (bij oulook) om de bijlage te openen is er niet :(

Weet iemand wat hier fout is?

Gegroet,
Jeffrey
 
Ah, supertof, mail headers :)
Iets dat ik zelf ooit ook eens geprobeerd heb, maar 't was geen noodzaak en ik had meer dingen te doen, dus 't is één van de weinige dingen die me nog niet gelukt is. Iets dat ik wel weet is dat je zowel LF's als CR's moet gebruiken in de mail headers. Dus niet alleen \n, maar ook \r (\r\n).

Verder zou ik zeggen: spit de RFC eens goed door :D
 
ik ben typisch weer iemand die totaal niet weet waar je het over hebt.... ik heb deze code ook maar uit een script van iemand anders... ;)

maar, als je er even aandacht aan besteed zie je al hoe het wekt...
stuur een mail naar jezelf (met bijlage) en bekijk de broncode, kopieer de broncode en je hebt de headers van de e-mail (nouja, bijna dan)

verder viel mij, op de een of andere manier, op dat
PHP:
$fileatt_type = filetype($zipname);
niet de goede uitkomst gaf... dus ik heb er dit van gemaakt:
PHP:
$fileatt_type = 'application/x-zip-compressed';

en heb ik uiteraard alle \n veranderd voor \r\n
en het werkt nu helemaal....
het eindresultaat zet ik op phpfreaks, (hyperlink komt nog)

Bedankt voor jullie hulp !!!

Jeffrey
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan