我在./var/label/somefile.pdf中生成了一个PDF文件,我希望在Magento的发货区域(特定于订单)提供访问权限作为链接,但我不确定为标签提供什么路径。当点击开始将文件下载到浏览器时,首选项是链接,我只希望这个链接可以被登录到管理员的人访问。
我尝试过直接路径(http://domain.com/var/label/somefile.pdf),但是它失败并出现访问错误,尝试使用不同版本的getVarDir()无效。
黑客入侵的文件:sales / order / shipment / view / form.phtml
答案 0 :(得分:0)
如果您需要检查访问者是否已登录管理员,则需要通过Magento控制器。
我假设您了解Magento开发的基础,或者最糟糕的是,有人知道可以帮助您。
首先,编辑(或创建,但您还需要创建路线)控制器扩展 Mage_Adminhtml_Controller_Action 并添加新方法操作 downloadShipmentPdf
const SHIPMENT_PDF_BASE_DIRECTORY = "/var/www/magentorootfolder/var/label/";
public function downloadShipmentPdfAction() {
$pdfName = $this->getRequest()->getParam('pdf',false);
if ($pdfName) {
$pdfContent = file_get_contents(SHIPMENT_PDF_BASE_DIRECTORY . $pdfName . '.pdf')
if ($pdfContent) {
$this->getResponse()->setHeader('Content-type', 'application/pdf');
$this->getResponse()->setBody($pdfContent);
return;
}
}
}
现在,您可以通过调用
为您的PDF生成符合管理员的URLMage::helper("adminhtml")->getUrl("modulename/controllername/downloadShipmentPdf", array('pdf' => 'thepdfnamewithoutextension');