3.2.3 - 严重 - 已处理
TP3.2.3版本的上传类重写了3.1.3的uploadfile类方法,如何使用不再赘述,我只说改写之后,出现的问题。如下:
$model = M('Photo');
// 取得成功上传的文件信息
$info = $upload->upload();
// 保存当前数据对象
$data['photo'] = $info[0]['savename'];
$data['create_time'] = NOW_TIME;
$model->add($data);上面是官网教程给出的获取上传文件名存入数据库的方法,上述方法在3.1.3版本是可用的,很遗憾,如果3.2.3的话,当且仅当<input type="file" name="0"/>的时候有效。如果上传控件的名字为其他名字,则获取方法必须是
$data['photo'] = $info['控件名字']['savename'];我对比了一下3.1.3和3.2.3中的写法3.1.3中上传类207行处:
$fileInfo[] = $file;3.2.3中上传类210行处: $info[$key] = $file;正是因为这两个写法的不同,导致获取的差异。--------------
也许这个并不是BUG,但我个人因为这个折腾了N久,请官方及时更新说明文档。
另外,个人觉得,改写后的类虽然在单文件上传处理上有一些不友好,但对于多文件上传是极其有益处的,可以让后台轻易的分辨前台上传的文件对应关系,方便后续操作。
