欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > uniapp 使用htmlPlus从相册选择照片并上传OSS

uniapp 使用htmlPlus从相册选择照片并上传OSS

2025/3/9 10:54:35 来源:https://blog.csdn.net/MrHao_/article/details/146043339  浏览:    关键词:uniapp 使用htmlPlus从相册选择照片并上传OSS

详细步骤

  1. 使用 plus.gallery.pick 选择图片
plus.gallery.pick(function(path) {console.log('Selected image path: ' + path);// 处理上传uploadImage(path);
}, function(error) {console.error('Failed to select image: ' + error.message);
}, {filter: "image"
});
  1. 转换路径并准备上传
    通常,plus.gallery.pick 返回的路径是本地路径,你可以使用 plus.io 来读取文件并转换为 Blob 或 Base64 格式,方便上传。
function uploadImage(filePath) {plus.io.resolveLocalFileSystemURL(filePath, function(entry) {entry.file(function(file) {var reader = new plus.io.FileReader();reader.onloadend = function(e) {var blob = new Blob([new Uint8Array(e.target.result)], { type: file.type });// 继续上传到 OSSuploadToOSS(blob, file.name);};reader.readAsArrayBuffer(file);});}, function(e) {console.error("Resolve file URL failed: " + e.message);});
}
  1. 上传到阿里云 OSS
    上传到 OSS 通常需要使用阿里云提供的 SDK 或者直接使用 HTTP 请求。这里是一个简单的 HTTP 上传示例:
function uploadToOSS(blob, fileName) {var xhr = new XMLHttpRequest();xhr.open('PUT', 'https://your-oss-bucket.oss-region.aliyuncs.com/' + fileName, true);xhr.setRequestHeader('Content-Type', blob.type);xhr.setRequestHeader('x-oss-object-acl', 'public-read');xhr.onload = function() {if (xhr.status === 200) {console.log('Upload successful!');} else {console.error('Upload failed: ' + xhr.status);}};xhr.onerror = function() {console.error('Upload error.');};xhr.send(blob);
}

注意事项
OSS 签名:在实际应用中,直接上传到 OSS 通常需要进行签名,以确保安全性。你需要在服务器端生成签名并将其传递到前端进行上传。

CORS 设置:确保你的 OSS Bucket 已经配置了 CORS,允许客户端直接上传。

SDK 使用:可以考虑使用阿里云官方提供的 OSS SDK,这样可以简化签名和上传流程。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词