123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- 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, fun) {
- uni.uploadFile({
- url: config.baseUrl + '/file/upload/v1', // 你的上传API地址
- filePath,
- name: 'file', // 必须填写,后台用来接收文件
- header: {
- "Content-Type": "multipart/form-data;",
- Authorization: 'Bearer ' + getToken()
- },
- success: (e) => {
- let res = JSON.parse(e.data)
- if (res.code == 200) {
- console.log('上传成功', res.data.path, res.data.url)
- fun(res.data);
- } else {
- uni.showToast({
- title: '上传附件失败,请稍候再试!',
- duration: 1000,
- icon: 'none'
- });
- fun();
- }
- },
- fail: (uploadFileErr) => {
- console.log('上传失败:', uploadFileErr);
- return;
- },
- });
- }
|