3

Joomlaガイドに従ってJoomla管理コンポーネントを作成しました - http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Developing_a_Basic_Component

その中で、ユーザーが単一のファイルをアップロードできるファイルアップローダーが必要です。

administrator\components\com_invoicemanager\models\forms\invoicemanager.xml で定義しました

<field name="invoice" type="file"/>

コントローラーの administrator\components\com_invoicemanager\controllers\invoicemanager.php で、以下のようにそのファイルを取得しようとしています。しかし、機能していません(ファイルを取得できません)

どこで間違っていますか?

ファイルを取得してディスクに保存するにはどうすればよいですか?

class InvoiceManagerControllerInvoiceManager extends JControllerForm
{
    function save(){
        $file = JRequest::getVar( 'invoice', '', 'files', 'array' );
        var_dump($file);
        exit(0);
    }
}
4

5 に答える 5

6

enctype="multipart/form-data"ファイルが送信されているフォームに含まれていることを確認してください。これはよくある間違いです

/// Get the file data array from the request.
$file = JRequest::getVar( 'Filedata', '', 'files', 'array' ); 

/// Make the file name safe.
jimport('joomla.filesystem.file');
$file['name'] = JFile::makeSafe($file['name']);

/// Move the uploaded file into a permanent location.
if (isset( $file['name'] )) {

/// Make sure that the full file path is safe.
$filepath = JPath::clean( $somepath.'/'.strtolower( $file['name'] ) );

/// Move the uploaded file.
JFile::upload( $file['tmp_name'], $filepath );}
于 2012-10-16T07:41:31.713 に答える
1

私は解決策を見つけたと思います:)

$file = JRequest::getVar('jform', null, 'files', 'array'); 

保存部分はここに記載されています-http://docs.joomla.org/Secure_coding_guidelines

于 2012-10-16T07:39:30.173 に答える
0

http://docs.joomla.org/How_to_use_the_filesystem_package

完全なアップロード サンプルがあります。

管理者がファイルの種類またはすべてを選択し、ユーザーを入力してフォームのアップロードにアクセスする小さなサンプル。Joomla ディレクトリまたは絶対パスでファイルをアップロードするフォルダー。選択したユーザーのみがフォームのアップロードにアクセスします。

于 2014-06-04T08:01:59.713 に答える