2015-06-12 2 views
5

Я нашел проблему с magento. Я попытался загрузить один файл .tgz zipped в magento, сжимая его вместе с другим файлом PDF. Однако, когда я пытаюсь загрузить его из magento, файл .tgz становится поврежденным. Я видел это в 4-5 разных случаях с разными файлами. Поэтому я думал, что это проблема с Magento? Однако он отлично работает, просто извлекая zip-файл в ПК.Не удается извлечь файл .tgz, загруженный из magento

Просто дайте мне знать возможные причины и решения для этого.

+1

«Поэтому я думал, что это как вопрос с чем "? Также пунктуация поможет читателям. – adrien54

+0

проверьте, поврежден ли файл или нет, через FTP в эту папку с пурпурным местоположением. – DRAJI

ответ

0

как насчет загрузки этого файла с zip-файлом по FTP. Возможно, произошел сбой при загрузке файла через браузер

+0

На самом деле мои клиенты загружают файл, который будет связан с загружаемым продуктом в magento. Так называемый .tgz-файл дополняется специальными продуктами с понижающим качеством –

0

Вероятно, проблема, с которой вы столкнулись, объясняется тем, что Magento генерирует (возможно, неверные) HTTP-заголовки для сжатых элементов. Конечным результатом является то, что элементы могут стать поврежденными, потому что они могут быть сжаты вдвое, однако есть некоторые простые вещи, которые вы можете сделать, если на самом деле это проблема, которую вы испытываете.

  1. Не используйте SetOutputFilter DEFLATE
  2. Не используйте AddOutputFilterByType DEFLATE application/x-httpd-php
  3. Создание правила исключения при необходимости с SetEnvIfNoCase

Все это explained in more detail by Babs Gösgens, который также был достаточно любезен, чтобы предоставить шаблон Magento .htaccess который включает определения для обработки некоторых из этих вопросов:

<IfModule mod_deflate.c> 

    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript 
    AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml 
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript 
    #AddOutputFilterByType DEFLATE application/x-httpd-php 

    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 

    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.(?:pdf|doc)$ no-gzip dont-vary 
    SetEnvIfNoCase Request_URI \.(?:avi|mov|mp3|mp4|rm)$ no-gzip dont-vary 

</IfModule> 
0

Не проблема с пурпуром. Его проблема с заголовком. Также как вы загружаете файл? вы дали прямую ссылку для скачивания? если да, то удалить, что и писать пользовательские действия, чтобы загрузить что-то вроде

public function downloadFileAction() { 
     ignore_user_abort (true); 
     set_time_limit (0); // disable the time limit for this script 

     $fullPath = Mage::getBaseDir() . "path_to_your_file/yourFile.tgz"; 

     if ($fd = fopen ($fullPath, "r")) { 
      $fsize = filesize ($fullPath); 
      $path_parts = pathinfo ($fullPath); 
      $ext = strtolower ($path_parts ["extension"]); 
      switch ($ext) { 
       case 'tgz': 
        header('Content-Description: File Transfer'); 
        header('Content-Type: application/octet-stream'); 
        header('Content-Length: ' . $fsize); 
        header('Content-Disposition: attachment; filename=' . $path_parts ["basename"]); 
        readfile($fullPath); 
       default : 
        header ("Content-type: application/octet-stream"); 
        header ("Content-Disposition: filename=\"" . $path_parts ["basename"] . "\""); 
        break; 
      } 
     } 
    } 

и называют свои действия, как:

$this->getUrl('your_controler') ?>index/downloadFile 

Надеется, что это поможет вам

Смежные вопросы