限制Magento中的前端文件上传大小

时间:2015-04-24 01:02:52

标签: file-upload magento-1.7 filesize

所以这是我的问题。我的管理员需要上传文件,每个文件可以是2-500 MB。我已经适当地设置了我的php.ini设置,这一切都很好。但现在我被要求允许访客从前端上传文件。显然,我不想让他们上传500 MB文件。

我一直在搜索并且无法找到一个合适的答案,允许在管理员中上传大文件,同时将前端访客限制为较小的文件大小。

那么如何让管理员继续上传超大文件,同时将前端用户限制在较小的文件大小?

这是我的解决方案:

public function saveAction()
{
    $post = $this->getRequest()->getPost();
    $helper = Mage::helper('my_module');
    if ( $post ) {
        try {
            if ($_FILES['size'] >= 2000000) { // Limit is set to 2 MB
                $errors[] = $helper->__('You have exceeded the max file size.');
                $error = true;
            }
            if ($error) {
                throw new Exception();
            }
            // Perform save operations here.
        } catch (Exception $e) {
            foreach($errors as $error) {
                Mage::getSingleton('core/session')->addError($error);
            }
            $this->_redirect('*/*/*');
            return;
        }
    }
}

检查文件是否超出限制。如果是,则抛出异常。

无论如何,我正在为同样的问题寻找更好/替代的解决方案。发布它们,如果你有它们的话!

1 个答案:

答案 0 :(得分:0)

我可以告诉你如何实现这一目标的基本想法。在saveAction()的管理员中添加此Mage::app()->getWebsite()->getId()这将返回当前的网站ID。管理员网站ID始终为0。因此,请在saveAction()中添加IF条件,以检查当前网站ID是否为0 or other

如果返回值不等于0,那么您可以将大小限制为50MB或您想要的大小。如果它等于0,那么您可以允许限制为500MB

希望这有帮助。