uni.uploadFile({ url: uploadImg, filePath: info.tempFiles[0].path, // 将 filePath 替换为你要上传的文件路径 name: 'file', // 将 'file' 替换为服务器接收文件的字段名 success: function (res) { const reader = new FileReader(); reader.onload = e => { that.jszPic = e.target.result; }; reader.readAsDataURL(info.tempFiles[0]); // 解析返回的数据 const data = JSON.parse(res.data); let {retData:md5}=data that.getImageInfo(md5) }, fail: function (err) { console.log(err); }, complete:()=>{ uni.hideLoading(); } }); },分析此段代码报错原因 ReferenceError: FileReader is not defined at Object.success (quickBilling.js? [sm]:298) at Function.I.forEach.g.<computed> (WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1) at :51444/appservice/<api uploadFile success callback function> at WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1 at tl (WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1) at Function.<anonymous> (WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1) at :51444/appservice/<NetworkUpload2success callback function> at WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1 at ph (WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1) at WAServiceMainContext.js?t=wechat&s=1689500299921&v=2.33.0:1(env: Windows,mp,1.06.2303060; lib: 2.33.0)
时间: 2024-04-17 14:26:19 浏览: 197
根据错误提示,报错原因是 "ReferenceError: FileReader is not defined",意味着在当前环境中未定义 `FileReader`。这个错误通常发生在某些小程序平台(如微信小程序)的开发环境中。
`FileReader` 是浏览器提供的用于读取文件的接口,然而并不是所有小程序平台都支持该接口。因此,在某些小程序平台中,你可能无法直接使用 `FileReader`。
如果你需要在小程序中读取文件内容,可以尝试使用小程序平台提供的其他文件处理接口来替代 `FileReader`。例如,可以使用 `uni.getFileSystemManager().readFile` 方法来读取文件内容。
你可以尝试将代码修改如下:
```javascript
uni.uploadFile({
url: uploadImg,
filePath: info.tempFiles[0].path,
name: 'file',
success: function (res) {
uni.getFileSystemManager().readFile({
filePath: info.tempFiles[0].path,
encoding: 'base64',
success: function (data) {
const base64Data = 'data:image/jpeg;base64,' + data.data;
that.jszPic = base64Data;
const parsedData = JSON.parse(res.data);
let { retData: md5 } = parsedData;
that.getImageInfo(md5);
},
fail: function (err) {
console.log(err);
}
});
},
fail: function (err) {
console.log(err);
},
complete: () => {
uni.hideLoading();
}
});
```
在修改后的代码中,我们通过 `uni.getFileSystemManager().readFile` 方法来读取文件内容,并使用 `encoding: 'base64'` 来指定读取的文件内容编码为 base64。然后,将 base64 数据赋值给 `that.jszPic`,并继续处理返回的数据。
这样修改后,应该就可以避免 `FileReader is not defined` 的错误了。请根据实际情况进行测试,如果还有其他问题,请随时提问。
阅读全文