3

我是 magento 的新手,我正在 magento 管理员中为文件上传创建自定义模块。

现在我已经在我的模块控制器中发布了上传文件。在这里,我曾经move_uploaded_file将文件上传到与控制器文件夹相同的目录中。下面的代码我用于控制器中的文件上传

$file_name=$_FILES["file"]["name"];
    $file_path="import/$file_name";

    if(move_uploaded_file($_FILES["file"]["tmp_name"],$file_path))
    {
        // my files not uploading 
    }

我无法上传目录文件夹中的文件。

那么我做错了什么?或者建议我move_uploaded_file在magento控制器中使用是否是处理文件上传的正确方法?

谢谢。

4

1 回答 1

5

为了在 Magento 中上传文件,您可以使用 Varien_File_Uploader::save() 方法:

if(isset($_FILES['file']['name']) && $_FILES['file']['name'] != '') {
    try {
        $fileName       = $_FILES['file']['name'];
        $fileExt        = strtolower(substr(strrchr($fileName, "."), 1));
        $fileNamewoe    = rtrim($fileName, $fileExt);
        $fileName       = str_replace(' ', '', $fileNamewoe) . '.' . $fileExt;

        $uploader       = new Varien_File_Uploader('file');
        $uploader->setAllowedExtensions(array('png', 'jpg')); //allowed extensions
        $uploader->setAllowRenameFiles(false);
        $uploader->setFilesDispersion(false);
        $path = Mage::getBaseDir('media') . DS . 'yourModuleFolder';
        if(!is_dir($path)){
            mkdir($path, 0777, true);
        }
        $uploader->save($path . DS, $fileName );
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}
于 2012-07-05T06:11:19.140 回答