当前位置: 首页 > wzjs >正文

做网站公司销售开场白哪些网站是react做的

做网站公司销售开场白,哪些网站是react做的,长沙个人做网站排名,上海网络推广文章目录 关键代码(复制即用)完整方法业务jsyudao自带的上传js(修改版) 关键代码(复制即用) 注意,包裹这些代码的函数,需要用async修饰。 代码版本是vue3的,vue2也适用【自行修改】 // 准备好你的视频地址 const vid…

文章目录

    • 关键代码(复制即用)
      • 完整方法业务js
      • yudao自带的上传js(修改版)

关键代码(复制即用)

注意,包裹这些代码的函数,需要用async修饰。 代码版本是vue3的,vue2也适用【自行修改】

// 准备好你的视频地址
const videoUrl = 【视频地址 例如http://test.com/xxx.mp4】;
// 1.创建视频元素
const video = document.createElement('video');
video.crossOrigin = 'anonymous'; // 处理跨域问题
video.muted = true;
video.playsInline = true;// 2.创建画布元素
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');try {// 等待视频元数据加载await new Promise((resolve, reject) => {video.addEventListener('loadedmetadata', resolve);video.addEventListener('error', reject);video.src = videoUrl;});// 设置视频当前帧到开始位置video.currentTime = 0;// 等待视频帧准备好await new Promise((resolve, reject) => {video.addEventListener('seeked', resolve);video.addEventListener('error', reject);});// 设置画布尺寸与视频一致anvas.width = video.videoWidth;canvas.height = video.videoHeight;// 绘制到画布ctx.drawImage(video, 0, 0, canvas.width, canvas.height);// 将画布转换为 Blobconst blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/jpeg', 0.95));// 创建文件对象const file = new File([blob], '【文件名可以自定义】.jpg', {type: 'image/jpeg',lastModified: Date.now()});console.log('封面文件:',file)let fm = await 【换成你的上传文件API接口】(file)console.log('上传封面结果',fm)data['image'] = fm.data
} catch (error) {console.error('处理失败:', error);
}

完整方法业务js

业务场景:用户选择【图文】or【视频】进行发布文章,如果是图文的话,选择第一个图片作为封面,如果是视频的话,选择视频的第一帧作为封面


const submitDiscover = async function(){if(title.value == ''){uni.showToast({title:'请输入标题',icon:'none'})return}if(content.value == ''){uni.showToast({title:'请输入内容',icon:'none'})return}if(fileList.value.length==0){uni.showToast({title:'请上传内容',icon:'none'})return}// 开始提交let data = {title: title.value,content: content.value,type: submitType.value == 'tuwen' ? '1' : '2', // 1图文 2视频,image:'',// contextImg:[],// video:''}let files = []for(let i=0;i<fileList.value.length;i++){let rs = (fileList.value[i].response)if(!rs){uni.showToast({title:'上传失败!请检查文件大小或格式',icon:'none'})return}let fileData = JSON.parse(rs)files.push(fileData.data)}if(submitType.value == 'tuwen'){data['contextImg'] = filesdata['image'] = files[0] // 设置封面图}else{// 视频data['video'] = files[0]// 封面要获取视频的第一帧并上传// data['image'] = files[0]console.log('获取封面:',fileList.value[0])const videoUrl = files[0];// 创建视频元素const video = document.createElement('video');video.crossOrigin = 'anonymous'; // 处理跨域问题video.muted = true;video.playsInline = true;// 创建画布元素const canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');try {// 等待视频元数据加载await new Promise((resolve, reject) => {video.addEventListener('loadedmetadata', resolve);video.addEventListener('error', reject);video.src = videoUrl;});// 设置视频当前帧到开始位置video.currentTime = 0;// 等待视频帧准备好await new Promise((resolve, reject) => {video.addEventListener('seeked', resolve);video.addEventListener('error', reject);});// 设置画布尺寸与视频一致canvas.width = video.videoWidth;canvas.height = video.videoHeight;// 绘制到画布ctx.drawImage(video, 0, 0, canvas.width, canvas.height);// 将画布转换为 Blobconst blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/jpeg', 0.95));// 创建文件对象const file = new File([blob], 'file.jpg', {type: 'image/jpeg',lastModified: Date.now()});// 创建一个FileReader实例// const reader = new FileReader();// reader.onload = function(event) {//   // event.target.result包含了文件的Data URL(Base64编码的字符串)//   const base64String = event.target.result;//   // 你可以在这里使用base64String,例如将其显示在页面上或发送到服务器//   console.log('封面base64',base64String);// };// reader.readAsDataURL(file);console.log('封面文件:',file)let fm = await FileApi.uploadFileByFile(file) // TODO改成自己的方法console.log('上传封面结果',fm)data['image'] = fm.data} catch (error) {console.error('处理失败:', error);}}console.log('submit..' ,data,files)// 发布文章DiscoverApi.publishDiscover(data).then(res=>{console.log('发布结果',res)if(res.code == 0){uni.showToast({title:'发布成功',icon:'success'})setTimeout(()=>{title.value = ('')content.value = ('')// filefileList.value = ([])uni.navigateBack()},1000)}})}

yudao自带的上传js(修改版)

import { baseUrl, apiPath, tenantId } from '@/sheep/config';
import request from '@/sheep/request';const FileApi = {// 上传文件uploadFile: (file) => {// TODO 芋艿:访问令牌的接入;const token = uni.getStorageSync('token');uni.showLoading({title: '上传中',});return new Promise((resolve, reject) => {uni.uploadFile({url: baseUrl + apiPath + '/infra/file/upload',filePath: file,name: 'file',header: {// Accept: 'text/json',Accept: '*/*','tenant-id': tenantId,// Authorization:  'Bearer test247',},success: (uploadFileRes) => {let result = JSON.parse(uploadFileRes.data);if (result.error === 1) {uni.showToast({icon: 'none',title: result.msg,});} else {return resolve(result);}},fail: (error) => {console.log('上传失败:', error);return resolve(false);},complete: () => {uni.hideLoading();},});});},uploadFileByFile: (file) => { // !!!!就是这个方法加一下// TODO 芋艿:访问令牌的接入;const token = uni.getStorageSync('token');uni.showLoading({title: '上传中',});return new Promise((resolve, reject) => {uni.uploadFile({url: baseUrl + apiPath + '/infra/file/upload',formData: {'file':file},name: 'file',header: {// Accept: 'text/json',Accept: '*/*','tenant-id': tenantId,// Authorization:  'Bearer test247',},success: (uploadFileRes) => {let result = JSON.parse(uploadFileRes.data);if (result.error === 1) {uni.showToast({icon: 'none',title: result.msg,});} else {return resolve(result);}},fail: (error) => {console.log('上传失败:', error);return resolve(false);},complete: () => {uni.hideLoading();},});});},// 获取文件预签名地址getFilePresignedUrl: (path) => {return request({url: '/infra/file/presigned-url',method: 'GET',params: {path,},});},// 创建文件createFile: (data) => {return request({url: '/infra/file/create', // 请求的 URLmethod: 'POST', // 请求方法data: data, // 要发送的数据});},
};export default FileApi;

文章转载自:

http://ENMQqeuL.ghyfm.cn
http://VgxpF8qx.ghyfm.cn
http://sr61nji9.ghyfm.cn
http://WxXZ7RcG.ghyfm.cn
http://Z8P2mx5w.ghyfm.cn
http://JUKx0GEa.ghyfm.cn
http://LRondm6i.ghyfm.cn
http://Mt3PCxjT.ghyfm.cn
http://ZiI98ibh.ghyfm.cn
http://BaBLmJZX.ghyfm.cn
http://t8tsAz4n.ghyfm.cn
http://ohuCop0P.ghyfm.cn
http://htgpMbFL.ghyfm.cn
http://pvAaZCgD.ghyfm.cn
http://xn2Jw9vN.ghyfm.cn
http://P28EvHyf.ghyfm.cn
http://kXcoHVmq.ghyfm.cn
http://gb9oStup.ghyfm.cn
http://4RqZHSA4.ghyfm.cn
http://M8LY1960.ghyfm.cn
http://aY5Pj1aN.ghyfm.cn
http://XBHd28t5.ghyfm.cn
http://DIiuBuVV.ghyfm.cn
http://Q6XWKuEc.ghyfm.cn
http://hZ6hNw0n.ghyfm.cn
http://p4Dh2KyT.ghyfm.cn
http://NwPM9nod.ghyfm.cn
http://qhDJCMSX.ghyfm.cn
http://gdqOrHXB.ghyfm.cn
http://nWURiHZB.ghyfm.cn
http://www.dtcms.com/wzjs/621624.html

相关文章:

  • 招商网站建设网网页设计与网站建设设计报告
  • 网站开发济南网站的音乐链接怎么做
  • 衡阳网站建设专家济南企业自助建站
  • 自建网站工具wordpress与商城
  • 冀州网站优化网站建设的er图
  • 电子商务网站建设需求说明书打造一个app需要多少钱
  • 宁波关键词网站排名有服务器怎么做网站
  • 免费推广网站大全下载栖霞网站建设
  • 网站建设与管理教案怎么写十大热门网页游戏排行
  • 如何用自己的电脑做网站北京网站开发公司有哪些
  • seo网站点击量排名优化网站设计评价指标
  • 视频解析网站制作wordpress 和shopify
  • seo技术建站1688网站的特点
  • 北京网站建设华网叫任何一个人一个小时做网站
  • 山东电力建设网站仿站模板
  • 分类信息网站系统cms一站式服务是什么意思
  • 软件免费网站大全长沙网站建设搭建
  • 京津冀协同发展意义江西省seo
  • 张家界建设信息网站免费免费建站
  • 旅游网站开发需求文档模板云虚拟主机怎么建网站
  • 如何让移动网站更优秀网站弹出窗口js
  • 北仑网站建设培训学校惠州网络推广哪里找
  • 企业网站报价方案下载网站开发初学
  • 建设网站的公司汇总wordpress直播购物插件
  • 珠海知名网站专业制作简历收费
  • 包头做网站上海 房地产网站建设
  • 公司网站做的好的公司企业网站优化技巧
  • 武隆网站建设费用关于加强网站建设的意见
  • 推荐一本学做网站的书网站怎么做能让人搜到
  • 做网站主要是做什么2345网址导航下载官网