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

php做电商网站开题报告网站建设佰金手指科捷一

php做电商网站开题报告,网站建设佰金手指科捷一,采购信息发布,杭州seo摘要: 今天遇到一个问题:vue3使用elemnt plus的上传图片时,数据是从别人的系统导出来的商品,图片是http的形式的,并且商品很多的,一个一个下载下来再上传很麻烦的,所以本系统插件商品时图片使用…

在这里插入图片描述
摘要:

今天遇到一个问题:vue3使用elemnt plus的上传图片时,数据是从别人的系统导出来的商品,图片是http的形式的,并且商品很多的,一个一个下载下来再上传很麻烦的,所以本系统插件商品时图片使用http的链接上传的形式上传到自己的服务器!

在这里插入图片描述

<template><div class="upload-box"><el-uploadv-model:file-list="fileList":accept="fileType.join(',')":action="uploadUrl":before-upload="beforeUpload":class="['upload', drag ? 'no-border' : '']":disabled="disabled":drag="drag":http-request="httpRequest":limit="limit":multiple="true":on-error="uploadError":on-exceed="handleExceed":on-success="uploadSuccess"list-type="picture-card"><div class="upload-empty"><slot name="empty"><Icon icon="ep:plus" /><!-- <span>请上传图片</span> --></slot></div><template #file="{ file }"><img :src="file.url" class="upload-image" /><div class="upload-handle" @click.stop><div class="handle-icon" @click="handlePictureCardPreview(file)"><Icon icon="ep:zoom-in" /><span>查看</span></div><div v-if="!disabled" class="handle-icon" @click="handleRemove(file)"><Icon icon="ep:delete" /><span>删除</span></div></div></template></el-upload><div class="el-upload__tip"><slot name="tip"></slot></div><el-image-viewer v-if="imgViewVisible" :url-list="[viewImageUrl]" @close="imgViewVisible = false" /><div><el-input v-model="imageUrl" placeholder="请输入图片链接" /><el-button @click="uploadImage">上传</el-button></div></div>
</template><script setup>
import { ref } from 'vue';
import { ElMessage } from 'element-plus';const fileList = ref([]);
const fileType = ref(['image/jpeg', 'image/png']);
const uploadUrl = ref('https://your-upload-url.com');
const drag = ref(false);
const disabled = ref(false);
const limit = ref(5);const imgViewVisible = ref(false);
const viewImageUrl = ref('');
const imageUrl = ref('');const beforeUpload = (file) => {// 自定义文件上传前的处理逻辑return true;
};const httpRequest = (options) => {// 自定义文件上传请求const { file, onProgress, onSuccess, onError } = options;const formData = new FormData();formData.append('file', file);// 发起自定义上传请求fetch(uploadUrl.value, {method: 'POST',body: formData,onUploadProgress: (event) => {onProgress({ percent: (event.loaded / event.total) * 100 });},}).then((response) => response.json()).then((data) => {onSuccess(data);}).catch((error) => {onError(error);});
};const uploadError = (err, file, fileList) => {ElMessage.error('上传失败');
};const handleExceed = (files, fileList) => {ElMessage.warning(`当前限制选择 ${limit.value} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
};const uploadSuccess = (response, file, fileList) => {ElMessage.success('上传成功');
};const handlePictureCardPreview = (file) => {viewImageUrl.value = file.url;imgViewVisible.value = true;
};const handleRemove = (file) => {const index = fileList.value.indexOf(file);if (index > -1) {fileList.value.splice(index, 1);}
};const uploadImage = () => {const imageUrl = imageUrl.value.trim();if (!imageUrl) {ElMessage.error('请输入有效的图片链接');return;}// 创建文件对象const file = {name: 'image.jpg',url: imageUrl,raw: new File([], 'image.jpg', { type: 'image/jpeg' })};// 将文件对象添加到文件列表fileList.value.push(file);// 清空输入框imageUrl.value = '';
};
</script><style scoped>
.upload-box {display: flex;flex-direction: column;align-items: center;
}.upload {width: 300px;
}.no-border {border: none;
}.upload-empty {display: flex;justify-content: center;align-items: center;height: 100%;
}.upload-image {width: 100%;height: 100%;object-fit: cover;
}.upload-handle {display: flex;justify-content: space-around;margin-top: 5px;
}.handle-icon {cursor: pointer;display: flex;align-items: center;
}.handle-icon span {margin-left: 5px;
}
</style>

代码功能解释
文件上传:

  • 使用 el-upload 组件实现文件上传,支持拖拽、多选、限制文件数量等功能。
  • v-model:file-list 绑定文件列表,:accept 设置允许的文件类型,:action 设置上传接口地址。
  • :before-upload、:http-request、:on-error、:on-exceed、:on-success 等属性分别用于文件上传前的处理、自定义上传请求、上传失败、超过文件数量限制、上传成功等事件的处理。

文件预览:

  • 上传的图片可以预览,点击图片可以放大查看。
  • handlePictureCardPreview 方法用于显示图片预览。

文件删除:

  • 上传的图片可以删除,删除操作会触发 handleRemove 方法。

输入图片链接:

  • 用户可以通过 el-input 输入图片链接并点击“上传”按钮来上传图片。
  • uploadImage 方法将输入的图片链接转换为文件对象,并将其添加到文件列表中。

flowchart TD
A[开始] --> B[用户输入图片链接]
B --> C[点击上传按钮]
C --> D[调用 uploadImage 方法]
D --> E{输入链接是否有效?}
E -->|否| F[提示无效链接]
E -->|是| G[创建文件对象]
G --> H[将文件对象添加到文件列表]
H --> I[更新文件列表]
I --> J[显示上传成功的图片]
J --> K[结束]
F --> K

在这里插入图片描述
代码逻辑说明:

  1. 输入图片链接:用户在 el-input 输入框中输入图片链接。
  2. 点击上传按钮:用户点击“上传”按钮,触发 uploadImage 方法。

处理上传逻辑:

  1. 检查输入的链接是否有效。
  2. 如果链接无效,提示用户。
  3. 如果链接有效,创建文件对象并将文件对象添加到文件列表中。
  4. 更新文件列表:文件列表更新后,显示新上传的图片。
  5. 通过上述步骤和控制流图,可以清晰地理解链接上传功能的实现过程。用户输入图片链接并点击上传按钮后,系统会将链接转换
  6. 为文件对象并添加到文件列表中,最终显示上传成功的图片。
http://www.yayakq.cn/news/991786/

相关文章:

  • 内部网站建设公司哈尔滨专业网站制作公司
  • 上海网站建设与设计重庆门户网站开发报价
  • 前端只是做网站吗建设大型商城
  • 十大购物网站市场营销策划书范文5篇精选
  • 爱旅游网站制作郑州网站建设公司e00
  • 网络编程和网站建设联系合肥网站优化 新浪博客
  • 西部数码 成品网站湖北高端企业礼品定制
  • 聊城专业做网站公司正规seo一般多少钱
  • 无锡公司做网站韩国最牛的设计网站大全
  • 手机模板网站模板下载工具聚合搜索引擎接口
  • 济南网站建设公司哪个好快递物流网站建设开发具备哪些功能
  • 网站被加入js广告网页设计公司创业计划书
  • php 校园网站设计wordpress支付查看插件
  • 微信的微网站模板下载wordpress 单栏主题
  • 免费推广网站短视频基础微网站开发公司
  • 开个网站建设公司需要什么软件搜索seo神器
  • 网站功能策划知名网站建设多少钱
  • 网站建设营销制作设计做导购网站用什么样的主机
  • 婚庆摄影网站模板大连网站设计收费标准
  • seo建站还有市场吗快速 模板 做网站
  • 啥网站都能看的浏览器下载怎样加强公司网站建设
  • 门户型网站开发难度php的网站模板
  • 8一9岁的手工关键词优化网站排名
  • 塘下网站建设公司免费网站建设模版云盘
  • 网站推广解释网站自动采集系统
  • 郑州专业网站设计公司地址国家高新技术企业认定管理工作网
  • 网站建站中关键字搜索怎么弄一个人免费视频在线观看高清
  • 高邮城乡建设网站青岛网页设计哪个公司好
  • 网站便宜建设现在如何进行网上推广
  • 网站开发用什么语言沈阳男科三甲医院排行榜