基于 uniapp 的应用上传图片/视频 资源的实现:

功能涉及的主要 uniapp API 如下:

1.选择图片:uni.chooseImage(OBJECT) | uni-app官网

2.选择视频:uni.chooseVideo(OBJECT) | uni-app官网

3.上传文件:uni.uploadFile(OBJECT) | uni-app官网

下面分别贴出示例代码:

上传图片

        // 上传图片async chooseImages() {uni.showLoading({mask: true,title: '上传中...'})// uploadFile 存储需要上传的文件let uploadFile = ''// 1.选择图片(这里只能单选)const res = await uni.chooseImage({count: 1,    // 最多可以选择的图片张数,默认9// sizeType: ['compressed'],     // original 原图,compressed 压缩图,默认二者都有sourceType: ['album'],      // album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项});// console.log('res:', res);if(res.length < 2) {       // 小于2则没有选择图片uni.hideLoading()return}uploadFile = res[1].tempFilePaths[0]; // 拿到选择的文件var that1 = this;// 2.将选择的图片上传到目标服务器const arr = await uni.uploadFile({// 需要上传的地址url: that1.vuex_uploadAction,// filePath  需要上传的文件filePath: uploadFile,name: 'file',timeout: 2000,     // 超时时间header: {        // HTTP 请求 Header, header 中不能设置 Referer。token: that1.vuex_token     // 挂载请求头为用户的 token},});// console.log(arr);let data = JSON.parse(arr[1].data)console.log('data:', data);if(data.code !== 1) {  // 图片上传失败了uni.hideLoading()that1.$u.toast(data.msg)return}// 上传成功(把上传成功后的文件路径 push 到页面需要显示的图片数据列表中)that1.fileList.push(data.data.fullurl)that1.formData.photo_url.push(data.data.url)// console.log(that1.fileList);uni.hideLoading()},

注:示例代码已封装为一个方法,可直接调用,需要自定义之处可自行参照 API 文档修改,比如从相册选图还是打开相机拍照、可上传的图片数量等

上传视频

        // 上传视频async chooseVideo() {uni.showLoading({mask: true,title: '上传中...'})// uploadFile 存储需要上传的文件let uploadFile = ''// 1.选择要上传的视频const res = await uni.chooseVideo({maxDuration: 60,        // 拍摄视频最长拍摄时间,单位秒。最长支持 60 秒。sourceType: ['album'],     // album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera']});uploadFile = res[1].tempFilePath;// console.log(uploadFile);var that2 = this;// 2.上传所选视频到服务器const arr = await uni.uploadFile({// 需要上传的地址url: that2.vuex_uploadAction,// filePath  需要上传的文件filePath: uploadFile,name: 'file',header: {token: that2.vuex_token       // 挂载请求头为用户的 token},});let data = JSON.parse(arr[1].data)console.log('data:', data);if(data.code !== 1) {      // 视频上传失败了uni.hideLoading()that1.$u.toast(data.msg)return}// 上传成功(把上传成功后的文件路径 push 到页面需要显示的视频数据列表中)that2.uploadVideoUrl = data.data.fullurlthat2.formData.video_url = data.data.urluni.hideLoading()}

扩展

uniapp 还整合提供了上传媒体文件(图片/视频)的 API: uni.chooseMedia 可用于上传图片和视频。若有兴趣可自行打开链接测试使用。

uniapp-上传图片、上传视频相关推荐

  1. wangeditor: 上传图片+上传视频+上传附件(自定义)完整使用

    wangeditor: 上传图片+上传视频+上传附件(自定义)完整使用 一:项目需求:①角色为管理员可以新增编辑文章 + ②点击可以看文章详情 +③ 角色为管理员可以修改编辑文章 二:效果: ①角色为 ...

  2. 点击上传图片/上传视频

    一.点击上传图片 ····结构:<div class="upload-wrap"><div class="upload-input">& ...

  3. 微信小程序实现上传视频 / 上传图片功能以及整合上传视频 / 上传图片功能(超详细)

    微信小程序有自己封装好的我们直接拿过来用就可以了 接下来我们看看如何实现的吧 上传图片功能 效果如下: 单图上传 Page({/*** 页面的初始数据*/data: {imgList: "& ...

  4. uni-app上传视频在手机上上传失败,在web端上传成功

    最近在写uni-app,上传视频的时候在web端电脑上没有链接手机调试,正常 但是!!当我打包在手机上上传视频的时候上传不上去,当我用手机连接电脑调试的时候(手机和电脑一定要在同一个局域网)发现上传视 ...

  5. uniapp图片上传,uniapp视频上传,uniapp附件上传,uniapp上传文件、uniapp文件上传组件

    uniapp文件上传组件,支持图片.视频上传 html部分: <template><view class="annex-wrap"><view cla ...

  6. JS任意截图并上传图片,上传视频、上传文件

    ** JS截图上传图片 ** 在前端WEB开放过程中,经常使用上传图片.上传视频.上传音频以及上传其他文件等,通常都使用到各种上传插件,但是很多插件只是单纯的上传文件,不具备图片截图,即使有也很传统, ...

  7. MVC+API 实现tinymce富文本编辑器上传图片、上传视频

    首先是要下载一个版本,这里我自己用的放到GitHub上了 https://github.com/dhgr1/tinymce 之前我试过官网的以及别的地方的,但都会报错,我也没搞清楚原因,你们可以自己去 ...

  8. uniapp 上传视频获取视频封面图

    // 上传视频或图片 uni.chooseMedia({// 上传数量count: 1,// 限制仅上传视频mediaType: ["video"],// 获取临时储存的信息suc ...

  9. uni-app上传视频

    上传单个视频 //html <view class="add_picture"><label class="title">视频</ ...

  10. vant weapp 多选上传图片_使用vant组件upLoad上传视频或图片

    使用vant的uploader 组件上传视频或图片, /* 预先浏览显示 */ :key="v" @click="delImg(v)" class=" ...

最新文章

  1. No loop matching the specified signature and casting was found for ufunc true_divide 解决方案
  2. 技术大牛养成指南,一篇不鸡汤的成功学实践
  3. (0059)iOS开发之添加自定义字体库并设置文本字体
  4. Websphere 7小版本不同导致的JAXP兼容性问题
  5. colmak键盘_Colemak键盘布局学习
  6. mock接口开发,excel(读,写,修改)
  7. win10编辑js文件报错,错误','
  8. POI Excel 合并数据相同的行
  9. Java面向对象和类
  10. Web项目之网络爬虫
  11. 经济学原理曼昆第八版课后习题答案
  12. 智慧工厂 VR 拆解零件 —— Hightopo 3D 虚实现实可视化系统
  13. EZEMC测试软件_AR EMC测试软件EMCWARE
  14. qq互联代码 php,请教QQ互联的代码是如何写的?
  15. Bootstrap实战 - 注册和登录
  16. cache abstraction
  17. 本质矩阵与基本矩阵(Essential and Fundamental Matrices)
  18. php设计模式-适配器
  19. python夯实基础日记-函数详解
  20. linux如何终端安装网卡驱动,linux如何安装网卡驱动

热门文章

  1. 超全的matlab绘图实例及代码(曲线,曲面,饼状图,柱形图,网格图,球面等)
  2. 谈谈javascript中的多线程
  3. 学习笔记之——DCDC降压芯片基本原理及选型主要参数介绍
  4. [项目管理-19]:在项目管理中, 如何用Jira对项目管理中的所有活动进行结构化、数字化和量化?
  5. Mysql数据库乱码解决方案
  6. LVS 负载均衡服务器搭建(详细)
  7. 面渣逆袭:计算机网络六十二问,三万字图文详解
  8. javaJDK64位下载
  9. 湖南文理学院第十六届程序设计竞赛_题解
  10. USACO-Tea Time