我发现magento存在问题。我尝试通过压缩它和另一个pdf文件将一个.tgz压缩文件上传到magento。但是,当我尝试从magento下载时,.tgz文件已损坏。我已经在4-5个不同的场合看到了不同的文件因此我认为它与Magento有关吗?但是,只需将zip文件解压缩到PC中就可以了。
请告诉我可能的原因和解决方案。
答案 0 :(得分:0)
如何通过FTP下载该压缩文件。 当您通过浏览器下载文件时,可能会出现中断
答案 1 :(得分:0)
您遇到的问题可能部分归因于Magento为压缩项生成(可能不正确)HTTP-Header的方式。最终的结果是项目可能会被破坏,因为它们可能会被双重压缩,但是,如果事实上这似乎是您遇到的问题,那么您可以做一些简单的事情。
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE application/x-httpd-php
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>
答案 2 :(得分:0)
它不是magento的问题。它的标题问题。你也是如何下载文件的?你有直接下载的链接吗?如果是,则删除它并编写自定义操作以下载类似
的内容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
希望这会对你有所帮助