getCanvasImg: function (tempFilePaths) { let that = this; wx.getImageInfo({ src: tempFilePaths, success: function (res) { const SIZE = 300 const ratio = Math.max((res.width/SIZE)*1, (res.height/SIZE)*1, 1) const smallWidth = Math.trunc(res.width / ratio) const smallHeight = Math.trunc(res.height / ratio) console.log('宽度:',smallWidth) console.log('高度:',smallHeight) console.log('缩放比例:',ratio) const ctx = wx.createCanvasContext('photo_canvas'); ctx.drawImage(tempFilePaths, 0, 0, smallWidth, smallHeight); ctx.draw(false, function () { wx.canvasToTempFilePath({ width: smallWidth, height: smallHeight, destWidth: smallWidth, destHeight: smallHeight, canvasId: 'photo_canvas', success: function (res) { console.log(res.tempFilePath) var filePaths = res.tempFilePath console.log(filePaths) that.data.pics || (that.data.pics = []) that.data.pics.push(...filePaths) that.setData({ pics: that.data.pics }) } }) }) } }) },报错信息是: Failed to load local image resource /pages/myProduct/h the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) (env: macOS,mp,1.06.2303220; lib: 2.32.0
时间: 2024-02-19 10:02:00 浏览: 111
这个错误信息看起来与你之前提到的错误信息相同,都是关于加载本地图片资源时出现了问题,返回了一个500内部服务器错误的状态码。在这段代码中,图片路径是通过tempFilePaths参数传递进来的,因此你需要确保该参数的值是正确的图片路径。如果图片路径正确,那么可能是服务器端的问题引起的,你可以联系服务器管理员查看是否有任何问题。同时,也可以尝试清除浏览器缓存或使用其他浏览器来查看是否能够解决问题。
相关问题
getCanvasImg: function (index, failNum, tempFilePaths) { let that = this; if (index < tempFilePaths.length) { wx.getImageInfo({ src: tempFilePaths[index], success: function (res) { const SIZE = 300 const ratio = Math.max((res.width/SIZE)*1, (res.height/SIZE)*1, 1) const smallWidth = Math.trunc(res.width / ratio) const smallHeight = Math.trunc(res.height / ratio) console.log('宽度:',smallWidth) console.log('高度:',smallHeight) console.log('缩放比例:',ratio) // 将宽高大小设置到页面的canvas元素(checkCanvas)上 const ctx = wx.createCanvasContext('photo_canvas'); ctx.drawImage(tempFilePaths[index], 0, 0, smallWidth, smallHeight); ctx.draw(false, function () { wx.canvasToTempFilePath({ width: smallWidth, height: smallHeight, destWidth: smallWidth, destHeight: smallHeight, canvasId: 'photo_canvas', success: function (res) { var filePaths = res.tempFilePath console.log(filePaths) that.data.pics || (that.data.pics = []) that.data.pics.push(...filePaths) that.setData({ pics: that.data.pics }) } }) }) } }) } },报错信息是:[渲染层网络层错误] Failed to load local image resource /pages/myProduct/h the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) (env: macOS,mp,1.06.2303220; lib: 2.32.0)
这个错误信息提示你在加载本地图片资源时出现了问题,可能是由于服务器内部错误导致的。建议你检查一下本地图片资源的路径是否正确,并确认服务器是否正常运行。同时,可以检查一下调用 wx.getImageInfo()方法时传入的 tempFilePaths[index] 参数是否正确,并确保该图片资源存在。如果问题仍然存在,你可以尝试重新启动服务器或联系服务器管理员寻求帮助。
下面这段代码,在微信小程序中存在哪些问题,请分析指出,并把修复后的代码发给我。addPic: function () { const _ = this; const { quality } = this.state Taro.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album'], success(result) { const tempFilePath = result.tempFilePaths[0]; let size = result.tempFiles[0].size; if (size > 1024 * 1024 * 8) {//大于8M返回 return Taro.showToast({ title: '图片大于8M啦', icon: 'none' }) } if (size < 1024 * 800) { //小于800kb压缩 const status = await _.imgSecCheck(tempFilePath) if (status == true) { console.log('通过了处理'); //走检测通过处理 } } else { Taro.getImageInfo({ src: tempFilePath, success: function (res) { _.setState({//设置原始宽高 cWidth: res.width, cHeight: res.height }, async () => { try { const imagePath = await _.getCanvasImg(tempFilePath, res.width, res.height, quality); const status = await _.imgSecCheck(imagePath) if (status == true) { console.log('通过了处理'); //走检测通过处理 } } catch (error) { } }) } }) } } }) },
在微信小程序中,下面这段代码存在以下问题:
1. `const status = await _.imgSecCheck(tempFilePath)` 语句中没有使用 `async` 函数,无法使用 `await` 关键字,应该将该函数改为 `async` 函数。
2. `await` 关键字只能在 `async` 函数中使用,因此需要将 `success` 回调函数改为 `async` 函数。
3. `success` 回调函数中的 `_.setState` 函数在微信小程序中应该使用 `this.setData` 函数进行替换。
4. `Taro.getImageInfo` 函数在微信小程序中应该使用 `wx.getImageInfo` 函数进行替换。
下面是修复后的代码:
```
addPic: function () {
const _ = this;
const { quality } = this.state
Taro.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: async function(result) {
const tempFilePath = result.tempFilePaths[0];
let size = result.tempFiles[0].size;
if (size > 1024 * 1024 * 8) {
//大于8M返回
return Taro.showToast({
title: '图片大于8M啦',
icon: 'none'
})
}
if (size < 1024 * 800) {
//小于800kb压缩
const status = await _.imgSecCheck(tempFilePath)
if (status == true) {
console.log('通过了处理');
//走检测通过处理
}
} else {
wx.getImageInfo({
src: tempFilePath,
success: async function(res) {
_.setData({
//设置原始宽高
cWidth: res.width,
cHeight: res.height
})
try {
const imagePath = await _.getCanvasImg(tempFilePath, res.width, res.height, quality);
const status = await _.imgSecCheck(imagePath)
if (status == true) {
console.log('通过了处理');
//走检测通过处理
}
} catch (error) {
}
}
})
}
}
})
},
```
阅读全文