Porsiyon. Php ile dosya docx

0 Cevap php

Php kullanarak bir. Docx dosya hizmet için çalışırken ben sorunları yaşıyorum. Dosyası yüklerken ben dosyanın mime türünü algılar ve mim türüne göre doğru uzantılı dosyayı kullanarak dosya upload; örneğin aşağıda:

application/msword - doc
application/vnd.openxmlformats-officedocument.wordprocessingml.document - docx

Indirmek için dosyaları hizmet için çalışırken, ben uzantısı tespit ve mime tipi örneğin dayalı hizmet veren ters yapmak

public static function fileMimeType($extention) {

        if(!is_null($extention)) {
            switch($extention) {
                case 'txt':
                    return 'text/plain';
                    break;
                case 'odt':
                    return 'application/vnd.oasis.opendocument.text';
                    break;
                case 'doc':
                    return 'application/msword';
                    break;
                case 'docx':
                    return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
                    break;
                case 'jpg':
                    return 'image/jpeg';
                    break;
                case 'png':
                    return 'image/png';
                    break;
                case 'pdf':
                    return 'application/pdf';
                    break;
                default:
                    break;
            }
        }

}

Tüm dosyalar doğru indirmek ve ince açmak için görünür ama bir docx dosyasını açmaya çalışırken, Word (birden çok dosya) dosyası bozuk olduğunu belirten bir hata atar.

Herhangi bir fikir harika olurdu, teşekkürler.

Düzenleme # 1

try {

 $file = new Booking_Document((int)$get_data['bookingDocument']);
 header('Content-Type: ' . Booking_Document::fileMimeType($file->getDocumentType()));
 header('Content-Disposition: attachment; filename=' . $file);
 header('Expires: 0');
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
 echo readfile(Zend_Registry::get(static::$_uploadDir).$this->_id);
} catch (Exception $e) {
 View_Helpers_FlashMessages::addMessage(array('message' => $e->getMessage(), 'type' => 'error'));
}
exit;

FIXED

Readfile çağırmadan önce () Ben sorun sabit göründüğü flush () ob_clean eklendi () ve.

0 Cevap