宝塔部署 flask
启动命令 flask run --host 0.0.0.0 --port 6954
ip:端口访问
进程目录 /mnt/wanmeiflask/
if __name__ == '__main__':
# 初始化数据库
init_db()
# 启动Flask应用
app.run(debug=True, host='0.0.0.0', port=6954)
微信分享
// 获取随机图片并保存为临时文件
fetchRandomImages: function () {
return new Promise((resolve, reject) => {
wx.request({
url: `${this.data.apiurl}/Api/Category/${this.data.currentApi}`, // 后端接口地址
method: 'GET',
responseType: 'arraybuffer', // 请求响应类型为二进制数据
success: async (res) => {
if (res.statusCode === 200) {
try {
// 将ArrayBuffer直接保存为临时文件
const tempFilePath = await this.saveArrayBufferAsTemp(res.data);
// 记录临时文件路径,用于后续清理
this.setData({
tempImagePaths: [...this.data.tempImagePaths, tempFilePath]
});
resolve(tempFilePath); // 返回临时文件路径
console.log('当前API:', this.data.currentApi);
} catch (error) {
console.error('保存临时文件失败:', error);
reject(error);
}
} else {
reject('获取图片失败');
}
},
fail: (err) => {
reject(err);
}
});
});
},如果遇上网络拥堵,那么响应速度会很慢,有优化的办法吗
onShareAppMessage: function() {
console.log("分享按钮被点击!"+this.data.imgSrc);
// 根据点击分享,把临时文件imgSrc上传到服务器并标记固定id
// 临时文件需要上传到服务器
return new Promise((resolve) => {
wx.uploadFile({
url: `${this.data.apiurl}/Api/Category/UploadImageForShare`, // 后端接口地址
filePath: this.data.imgSrc,
name: 'image',
success: (uploadRes) => {
wx.hideLoading();
try {
// 解析响应
const result = JSON.parse(uploadRes.data);
console.log('上传响应:', result);
// 检查响应结构
if (result.successful && result.data && result.data.success) {
// 使用 data.imageUrl 而不是直接 imageUrl
const imageUrl = result.data.imageUrl;
console.log('上传成功,图片URL:', imageUrl);
resolve(this.createShareInfo(imageUrl));
} else {
console.warn('上传失败:', result.message || '未知错误');
this.handleShareFallback(resolve);
}
} catch (e) {
console.error('JSON解析错误:', e, '原始响应:', uploadRes.data);
this.handleShareFallback(resolve);
}
},
fail: (err) => {
console.error('上传失败:', err);
wx.hideLoading();
this.handleShareFallback(resolve);
}
}); })
},
// 创建分享信息
createShareInfo: function(imageUrl) {
return {
title: "送你一张好看的超清壁纸",
path: `/pages/index/picdetail?url=${encodeURIComponent(imageUrl)}&isShare=true&origin=${this.data.origin}`,
// imageUrl: imageUrl // 分享缩略图
};
},
// 分享失败处理
handleShareFallback: function(resolve) {
wx.showToast({ title: '分享准备失败', icon: 'none' });
resolve({
title: "送你一张好看的超清壁纸",
path: '/pages/index/index'
});
},应该是在前端生成一个随机id, 传递给后端保存为图片的名字,这样,就不需要等待上传完成,就可以直接分享 并且有固定的id