前几天关于pickerdate的问题,下载了最新cdn版本覆盖后解决了。
今天又发现upload组件用不了,同样多页版,具体如下:
1、使用当前最新版本,后端php接收不到任何数据,打印整个FILES和POST都是空的。
2、覆盖回1.8.5版本又正常了。
代码如下:
function order_attch_upload() {
let uiUpload = bui.upload({
url: 'xxxxxxx',
fileKey: 'attch_file',
mediaType: 'allmedia',
});
uiUpload.add({
onSuccess: function(file) {
uiUpload.start({
data: { file: file },
onSuccess: function(res) {
let code = Number(res.err);
if (code > 0) {
bui.hint(res.msg);
} else {
bui.refresh();
}
},
onFail: function() {
uiUpload.clear();
bui.hint('处理文件上传时发生错误');
},
});
},
});
}
if (empty($_FILES) || !isset($_FILES['attch_file'])) {
$end['msg'] = '没有任何文件被上传';
goto END;
}
Zepto 之前确实是考虑移动端的时候,jQuery有点大,所以在选用的时候是有考虑两者兼容,BUI + Jquery 是可以支持的,不过当时只测试到2.x, 最新版的还不知道是否删减了一些API,后续会看看,新年快乐。
估计是我搞乌龙了,项目中一直引用着jquery v3.7.1,未使用bui提供的zepto.js,庆幸之前一直兼容着。
本地排除测试了一下,jquery+最新bui不能正常上传,jquery+旧版bui正常上传,zepto+最新bui测试通过。
估计当初bui选用zepto是看中他的轻量,但zepto已7-8年不更新,jquery还一直在努力更新,体积在当下来说也不是大优势。
建议在条件成熟下,考虑兼容或转向jquery,祝新年快乐!
可以提供一个可以正常访问的地址测试? 你换个接口试试,我觉得问题不在方法上,我们的接口跟第三方的接口是可以正常上传并接收的
直接引用 https://www.easybui.com/demo/js/bui.js 依然不行
用这个版本呢? https://www.easybui.com/demo/js/bui.js 上传我们目前的版本测试都是正常的,也可以参考换成示例的接口试试。
按你的办法,去掉了data:{ file: file } ,还是一样,新版本不可以,旧版本可以。
这个问题可能跟版本没有关系, 官方的示例是可以正常上传文件的,https://www.easybui.com/demo/#pages/ui_controls/bui.upload ,选择相册,不过需要打开跨域的chrome,才可以模拟到。
你的代码里面,试试不传 data:{ file: file } 这个参数去掉,因为上面的fileKey 已经做了配置。