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 に答える