mcfloyd Posted September 26, 2014 Share Posted September 26, 2014 Hello, I'm having a huge issue right now decoding a zip file from an attachment with a content-encoding of quoted-printable. I have tried a couple different methods (such as decoding the entire attachment or decoding it line by line), but none have produced a valid file when saved. What I don't understand is that I can download and open the file in Outlook fine, so there must be something wrong with the decoder. Here is a code snippet of my recent attempt: elseif ($transferEncoding == 'quoted-printable'){ $fileError = true; $attachmentParts = explode("\n", $currentPart->getContent()); $attachmentArray = array(); foreach ($attachmentParts as $line){ array_push($attachmentArray, quoted_printable_decode($line)); } $attachment = implode("", $attachmentArray); file_put_contents($unzipPath . '.zip', $attachment); } $unzipper = new Decompress(array( 'adapter' => 'Zip', 'options' => array( 'target' => $unzipPath, ) )); $unzipper->filter($unzipPath . '.zip'); unlink($unzipPath . '.zip'); I'm using Zend Framework 2 methods for unzipping the file when it's done, but there is a CRC error because the file is getting corrupted during the decode. This is how the file compares to the original (using Beyond Compare 3): So it is finding the hex for CLRF and removing it from the file. Any ideas on this would be greatly appreciated as I have been trying to solve this for about a month now. Thanks, -mcfloyd Link to comment https://forums.phpfreaks.com/topic/291297-decoding-quoted-printable-mime-attachment-corrupted-zip-file/ Share on other sites More sharing options...
requinix Posted September 26, 2014 Share Posted September 26, 2014 $attachmentParts = explode("\n", $currentPart->getContent()); will cause problems if the newline is a \r\n. Try $attachmentParts = preg_split('/\r\n?|\n/', $currentPart->getContent()); Link to comment https://forums.phpfreaks.com/topic/291297-decoding-quoted-printable-mime-attachment-corrupted-zip-file/#findComment-1492174 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.