|
@@ -0,0 +1,183 @@
|
|
|
+import config from '@/config'
|
|
|
+import {
|
|
|
+ uplaodfile
|
|
|
+} from "@/api/apis.js";
|
|
|
+import {
|
|
|
+ getToken
|
|
|
+} from '@/utils/auth'
|
|
|
+// 选择图片
|
|
|
+export function chooseImage() {
|
|
|
+ uni.chooseImage({
|
|
|
+ sourceType: ['album', 'camera'], // 使用相机拍照
|
|
|
+ camera: 'back', // 默认使用后置摄像头,可选值有front、back
|
|
|
+ success: (res) => {
|
|
|
+ console.log('拍照成功:', res);
|
|
|
+ // 处理图片,例如预览图片或上传到服务器
|
|
|
+ // upload(res)
|
|
|
+ let file = res.tempFiles[0];
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append('file', file)
|
|
|
+ uplaodfile(formData).then(a => {
|
|
|
+ console.log(aaa)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.error('拍照失败:', err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+export function upload(res) {
|
|
|
+ let file = res.tempFiles[0];
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append('file', file)
|
|
|
+ var requestOptions = {
|
|
|
+ method: 'post',
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + getToken()
|
|
|
+ },
|
|
|
+ body: formData,
|
|
|
+ };
|
|
|
+ fetch(
|
|
|
+ config.uploadUrl + '/file/upload/v1',
|
|
|
+ requestOptions
|
|
|
+ )
|
|
|
+ .then((response) => {
|
|
|
+ return response.json();
|
|
|
+ }).then(res => {
|
|
|
+ console.log(res);
|
|
|
+ if (res.code == '1000') {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.message,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.message,
|
|
|
+ icon: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+// 选择视频
|
|
|
+export function chooseVideo() {
|
|
|
+ uni.chooseVideo({
|
|
|
+ sourceType: ['album', 'camera'], // 使用相机录像
|
|
|
+ camera: 'back', // 默认使用后置摄像头,可选值有front、back
|
|
|
+ maxDuration: 60, // 最大录制时长(秒)
|
|
|
+ success: (res) => {
|
|
|
+ console.log('视频录制成功:', res);
|
|
|
+ // 处理视频,例如将视频路径显示在页面上
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.error('视频录制失败:', err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// 选择照片或视频
|
|
|
+export function chooseMedia() {
|
|
|
+ uni.chooseMedia({
|
|
|
+ count: 9, // 默认为9, 设置为1时只能选择一个文件
|
|
|
+ mediaType: ['image', 'video'], // 选择媒体类型,可以是'image'或'video'
|
|
|
+ sourceType: ['album', 'camera'], // 可选择来源是相册还是相机
|
|
|
+ success: (res) => {
|
|
|
+ res.tempFiles.forEach(element => {
|
|
|
+ const tempFilePaths = element.tempFilePath;
|
|
|
+ // 上传文件到服务器
|
|
|
+ uploadFile(tempFilePaths);
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.log('选择媒体失败:', err);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+export function getFile(filePath) {
|
|
|
+ const fileManager = uni.getFileSystemManager();
|
|
|
+ fileManager.readFile({
|
|
|
+ filePath: filePath, // 需要读文件的路径
|
|
|
+ encoding: 'base64', // 编码格式,此处以base64为例,也可以使用'binary'等其他格式
|
|
|
+ success: (res) => {
|
|
|
+ console.error('读取文件成功:', res.data);
|
|
|
+ uploadFile(res.data); // 调用上传方法,传入文件内容
|
|
|
+ },
|
|
|
+ fail: (error) => {
|
|
|
+ console.error('读取文件失败:', error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+export function requestFile(filePath) {
|
|
|
+ // const blob = new Blob([res.data]);
|
|
|
+ // files: [formData],
|
|
|
+ // create: true
|
|
|
+ plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs) => {
|
|
|
+ fs.root.getFile(filePath, {}, (fileEntry) => {
|
|
|
+ fileEntry.file((file) => {
|
|
|
+
|
|
|
+ console.log("文件大小:", file);
|
|
|
+ //创建读取文件对象
|
|
|
+ let fileReader = new plus.io.FileReader();
|
|
|
+ //以文本格式读取文件数据内容
|
|
|
+ // fileReader.readAsText(file, 'utf-8');
|
|
|
+ //文件读取操作完成时的回调函数
|
|
|
+ fileReader.readAsArrayBuffer(file);
|
|
|
+ console.log("aaaa:", fileReader);
|
|
|
+ fileReader.onloadend = (evt) => {
|
|
|
+ console.log("文件:", evt);
|
|
|
+ var fileData = new FormData();
|
|
|
+ fileData.append('file', new Blob([evt], {
|
|
|
+ type: file.type
|
|
|
+ }));
|
|
|
+ // console.log(JSON.parse(evt.target.result),
|
|
|
+ // 'JSON.parse(evt.target.result)')
|
|
|
+ // resolve(JSON.parse(evt.target.result))
|
|
|
+ // sURL = JSON.parse(evt.target.result).URL;
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // fileEntry.createWriter((writer) => {
|
|
|
+ // writer.write(new Blob(['Hello, UniApp!'], {
|
|
|
+ // type: 'text/plain'
|
|
|
+ // }));
|
|
|
+ // });
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// 上传文件到服务器
|
|
|
+export function uploadFile(filePath) {
|
|
|
+ uni.uploadFile({
|
|
|
+ url: config.baseUrl + '/file/upload/v1', // 你的上传API地址
|
|
|
+ filePath,
|
|
|
+ name: 'file', // 必须填写,后台用来接收文件
|
|
|
+ header: {
|
|
|
+ "Content-Type": "multipart/form-data;",
|
|
|
+ Authorization: 'Bearer ' + getToken()
|
|
|
+ },
|
|
|
+ success: (e) => {
|
|
|
+ if (e.data.code == 200) {
|
|
|
+ console.log('上传成功', e.data.data.path, e.data.data.url)
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: '上传附件失败,请稍候再试!',
|
|
|
+ duration: 1000,
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (uploadFileErr) => {
|
|
|
+ console.log('上传失败:', uploadFileErr);
|
|
|
+ return;
|
|
|
+ },
|
|
|
+
|
|
|
+ });
|
|
|
+}
|