1

私はこのxuploadファイル拡張子を持っています:

<?php
        $this->widget( 'xupload.XUpload', array(
            'url' => Yii::app( )->createUrl( "/controller/upload"),
            'model' => $model,
            'htmlOptions' => array('id'=>'somemodel-form'),
            'attribute' => 'file1',
            'multiple' => true,
            'formView' => 'application.views.somemodel.form1',
            'uploadView' => 'application.views.somemodel.upload1',
            'downloadView' => 'application.views.somemodel.download1',
            'options' => array(//Additional javascript options
                //This is the submit callback that will gather
                //the additional data  corresponding to the current file
                'submit' => "js:function (e, data) {
                    var inputs = data.context.find(':input');
                    data.formData = inputs.serializeArray();
                    return true;
                }"
            ),
            )    
        );
        ?>

そして、別のアップロードファイルフィールドを追加する必要がありますが、次のようにコードを複製すると、次のようになります。

<?php
        $this->widget( 'xupload.XUpload', array(
            'url' => Yii::app( )->createUrl( "/controller/upload"),
            'model' => $model,
            'htmlOptions' => array('id'=>'somemodel-form'),
            'attribute' => 'file2',
            'multiple' => true,
            'formView' => 'application.views.somemodel.form2',
            'uploadView' => 'application.views.somemodel.upload2',
            'downloadView' => 'application.views.somemodel.download2',
            'options' => array(//Additional javascript options
                //This is the submit callback that will gather
                //the additional data  corresponding to the current file
                'submit' => "js:function (e, data) {
                    var inputs = data.context.find(':input');
                    data.formData = inputs.serializeArray();
                    return true;
                }"
            ),
            )    
        );
        ?>

問題は、両方のアップロードファイルの画像をアップロードするときに同じアップロードテンプレートで機能することでした。uploadTemplate、downloadTemplateオプションを追加しようとしましたが、機能しませんでした。uploadTemplate、downloadTemplateの使用方法と、renderPartialとしてレンダリングする方法とどのファイルでそれをレンダリングし、この行のidを変更する必要があります<script id = "template-upload" type = "text/x-tmpl">および<scriptid= "template-download" type = "text / x-tmpl"> upload.phpおよびdownload.phpテンプレートファイル、何をすべきか教えてください。

どうもありがとう

4

1 に答える 1

2

同じページで複数のウィジェットを使用して XUpload を使用したことはありませんが、これを試してください。

フォーム テンプレート (application.views.somemodel.form1およびapplication.views.somemodel.form2) ごとに、クラスを追加します。「ファイルアップロード」:

//application.views.somemodel.form1
<form class="fileupload" action="server/php/" method="POST" enctype="multipart/form-data">
    <!-- ... -->
</form>

//application.views.somemodel.form2
<form class="fileupload" action="server/php/" method="POST" enctype="multipart/form-data">
    <!-- ... -->
</form>

uploadViewそれぞれに異なる ID を作成しますdownloadView。つまり:

//application.views.somemodel.upload1
< script id="template-upload1" type="text/x-tmpl">
//application.views.somemodel.download1
< script id="template-download1" type="text/x-tmpl">

//application.views.somemodel.upload2
< script id="template-upload2" type="text/x-tmpl">
//application.views.somemodel.download2
< script id="template-download2" type="text/x-tmpl">

ウィジェットを次のように構成します。

<?php
        $this->widget( 'xupload.XUpload', array(
            'url' => Yii::app( )->createUrl( "/controller/upload"),
            'model' => $model,
            'htmlOptions' => array('id'=>'somemodel-form'),
            'attribute' => 'file1',
            'multiple' => true,
            'formView' => 'application.views.somemodel.form1',
            'uploadView' => 'application.views.somemodel.upload1',
            'downloadView' => 'application.views.somemodel.download1',
            'uploadTemplate' => '#template-upload1', // IMPORTANT!
            'downloadTemplate' => '#template-download1',// IMPORTANT!
            'options' => array(//Additional javascript options
                //This is the submit callback that will gather
                //the additional data  corresponding to the current file
                'submit' => "js:function (e, data) {
                    var inputs = data.context.find(':input');
                    data.formData = inputs.serializeArray();
                    return true;
                }"
            ),
            )    
        );
        ?>

<?php
        $this->widget( 'xupload.XUpload', array(
            'url' => Yii::app( )->createUrl( "/controller/upload"),
            'model' => $model,
            'htmlOptions' => array('id'=>'somemodel-form'),
            'attribute' => 'file2',
            'multiple' => true,
            'formView' => 'application.views.somemodel.form2',
            'uploadView' => 'application.views.somemodel.upload2',
            'downloadView' => 'application.views.somemodel.download2',
            'uploadTemplate' => '#template-upload2', // IMPORTANT!
            'downloadTemplate' => '#template-download2',// IMPORTANT!
            'options' => array(//Additional javascript options
                //This is the submit callback that will gather
                //the additional data  corresponding to the current file
                'submit' => "js:function (e, data) {
                    var inputs = data.context.find(':input');
                    data.formData = inputs.serializeArray();
                    return true;
                }"
            ),
            )    
        );
        ?>
于 2013-01-17T13:53:32.483 に答える