【问题标题】:Limit front-end file upload size in Magento限制 Magento 中的前端文件上传大小
【发布时间】:2015-07-02 10:27:28
【问题描述】:

所以这是我的问题。我的管理员需要上传文件,每个文件可以在 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;
        }
    }
}

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

无论如何,我正在为同样的问题寻找更好/替代的解决方案。有的话就贴出来!

【问题讨论】:

    标签: file-upload magento-1.7 filesize


    【解决方案1】:

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

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-23
      • 2014-08-25
      • 2011-01-29
      • 2017-03-09
      • 2011-01-13
      • 1970-01-01
      • 2022-10-26
      • 1970-01-01
      相关资源
      最近更新 更多