所以这是我的问题。我的管理员需要上传文件,每个文件可以是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;
}
}
}
检查文件是否超出限制。如果是,则抛出异常。
无论如何,我正在为同样的问题寻找更好/替代的解决方案。发布它们,如果你有它们的话!
答案 0 :(得分:0)
我可以告诉你如何实现这一目标的基本想法。在saveAction()
的管理员中添加此Mage::app()->getWebsite()->getId()
这将返回当前的网站ID。管理员网站ID始终为0
。因此,请在saveAction()
中添加IF条件,以检查当前网站ID是否为0 or other
。
如果返回值不等于0
,那么您可以将大小限制为50MB
或您想要的大小。如果它等于0
,那么您可以允许限制为500MB
。
希望这有帮助。