首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >依伊的CUploadedFile

依伊的CUploadedFile
EN

Stack Overflow用户
提问于 2015-05-21 16:23:01
回答 1查看 1.9K关注 0票数 1

我的问题是有两个或两个以上的文件。此代码为Yii应用程序开发手册(第二版),第四章使用Yii 1.1.14。

主计长:

代码语言:javascript
运行
复制
<?php
class UploadController extends Controller
{
    function actionIndex()
    {
        $dir = Yii::getPathOfAlias('application.uploads');
        $uploaded = false;
        $model=new Upload();
        if(isset($_POST['Upload']))
        {
            $model->attributes=$_POST['Upload'];
            $files=CUploadedFile::getInstances($model,'file');
            if($model->validate()){
                foreach($files as $file)
                    $file->saveAs($dir.'/'.$file->getName());
            }
        }
        $this->render('index', array(
            'model' => $model,
            'dir' => $dir,
        ));
    }
}

模型:

代码语言:javascript
运行
复制
<?php
class Upload extends CFormModel
{
    public $file;
    public function rules()
    {
        return [
            ['file', 'file', 'types'=>'jpg'],
        ];
    }
}

意见:

代码语言:javascript
运行
复制
<?php if($uploaded):?>
<p>File was uploaded. Check <?php echo $dir?>.</p>
<?php endif ?>
<?php echo CHtml::beginForm('','post',array('enctype'=>'multipart/form-  data'))?>
    <?php echo CHtml::error($model, 'file')?>
    <?php echo CHtml::activeFileField($model, "[0]file")?>
    <?php echo CHtml::activeFileField($model, "[1]file")?>
    <?php echo CHtml::submitButton('Upload')?>
<?php echo CHtml::endForm()?>

帮帮我,拜托

EN

回答 1

Stack Overflow用户

发布于 2015-05-21 19:55:29

  1. 您应该修复表单封装类型,使用multipart/form-data而不是multipart/form- data
  2. 你可以用CMultiFileUpload

主计长:

代码语言:javascript
运行
复制
$images = CUploadedFile::getInstancesByName('image');
foreach ($images as $image => $pic) {
}

意见:

代码语言:javascript
运行
复制
$this->widget('CMultiFileUpload', array(
    'name' => 'image',
    'accept' => 'jpeg|jpg|gif|png',
    'duplicate' => 'Duplicate file!',
    'denied' => 'Invalid file type',
));

添加到模型'maxFiles‘param,如果您需要验证才能正确地工作多文件上传。

代码语言:javascript
运行
复制
public function rules()
{
    return array(
        array('image', 'file', 'types'=>'jpg,gif,png', 'maxSize'=>'204800', 'allowEmpty'=>true, 'maxFiles'=>4),
    );
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30379317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档