新增聊天系统
This commit is contained in:
83
utils/uploadFile.js
Normal file
83
utils/uploadFile.js
Normal file
@@ -0,0 +1,83 @@
|
||||
const app = getApp();
|
||||
|
||||
/**
|
||||
* 选择并上传图片
|
||||
* @param {number} count - 最多选择的图片数量
|
||||
* @param {boolean} compressed - 是否压缩图片
|
||||
* @returns {Promise} - 返回上传成功后的图片URL数组
|
||||
*/
|
||||
export function uploadImage(count = 1, compressed = true) {
|
||||
return new Promise((resolve, reject) => {
|
||||
// 选择图片
|
||||
uni.chooseImage({
|
||||
count,
|
||||
sizeType: compressed ? ['compressed'] : ['original'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: (res) => {
|
||||
const tempFilePaths = res.tempFilePaths;
|
||||
const uploadPromises = tempFilePaths.map((tempFilePath) =>
|
||||
uploadSingleImage(tempFilePath)
|
||||
);
|
||||
|
||||
// 并行上传所有图片
|
||||
Promise.all(uploadPromises)
|
||||
.then(results => resolve(results))
|
||||
.catch(error => reject(error));
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('选择图片失败:', err);
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传单张图片
|
||||
* @param {string} filePath - 本地图片路径
|
||||
* @returns {Promise} - 返回上传成功后的图片URL
|
||||
*/
|
||||
function uploadSingleImage(filePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url: app.globalData.get_request_url('excel', 'xo'), // 上传地址
|
||||
filePath,
|
||||
name: 'file', // 服务器接收的文件字段名
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
try {
|
||||
const data = JSON.parse(res.data);
|
||||
if (data.code === 0) { // 根据实际接口返回格式调整
|
||||
resolve(data.data.url); // 返回图片URL
|
||||
} else {
|
||||
reject(new Error(data.message || '上传失败'));
|
||||
}
|
||||
} catch (e) {
|
||||
reject(new Error('解析响应数据失败'));
|
||||
}
|
||||
} else {
|
||||
reject(new Error(`服务器响应错误: ${res.statusCode}`));
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('上传图片失败:', err);
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览图片
|
||||
* @param {Array} urls - 图片URL数组
|
||||
* @param {number} current - 当前预览的图片索引
|
||||
*/
|
||||
export function previewImage(urls, current = 0) {
|
||||
uni.previewImage({
|
||||
urls,
|
||||
current,
|
||||
fail: (err) => {
|
||||
console.error('预览图片失败:', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user