Yii:验证失败后保持文件上传?

cod*_*ama 5 php file-upload yii

如果我使用 YII 上传文件并且另一个规则失败,则用户必须再次选择该文件。避免这种情况的最简单方法是什么?

例如,我有一个规则,标题最多必须是 20 个字符。用户输入 21 个字母。他选择要上传的文件。当用户返回该页面时,该文件不再存在,他必须再次选择它,并再次有效地上传它。这是非常令人沮丧的,尤其是现在当用户需要上传多达十个文件时。

我知道 Drupal 是这样工作的。如果您上传和其他规则失败,当您返回表单时,文件将显示为屏幕截图。如何在 YII 上获得相同的功能?

更新 如果我能用这个扩展来满足这个要求并且不需要用户按下开始上传,我就可以回家了

Sam*_*iew 1

xupload 包装的原始插件,还有一个您可以使用的附加回调选项:.done()

在 xupload wiki 中,访问这些附加选项的方法如下:

<?php
    $this->widget('xupload.XUpload', array(
        // ... other attributes
        'options' => array(
            //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;
            }"
        ),
    ));
?>
Run Code Online (Sandbox Code Playgroud)

来源

您可能只需将提交部分更改为done,然后将上传文件的 URL/路径保存到临时隐藏字段,然后将验证移至该隐藏字段,这样用户就不必重新上传文件再次。

我从这个插件转向coco uploader,因为它更容易实现。