热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

上传文件(不通过组件自动上传,并且使用post方式上传)

由于一些需求无法使用el-upload组件直接进行上传,所以使用以下方法进行接口方式提交api文件上传文件exportfunctionuploadFile(url,data){re

由于一些需求 无法使用el-upload组件直接进行上传,所以使用以下方法进行接口方式提交

api文件

// 上传文件
export function uploadFile(url,data) {
return request({
url: url,
method: 'post',
data: data
})
}

vue文件

ref="upload"
:limit="10" //最多上传十个文件
action="#" // 必选参数,上传的地址
:multiple="true" // 是否支持多选文件
:show-file-list="true" // 是否显示已上传文件列表
:on-change="handleUploadChange" // 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用
:on-progress="handleFileUploadProgress" //文件上传时的钩子
:on-success="handleFileSuccess" //文件上传成功时的钩子
:auto-upload="false" //是否在选取文件后立即进行上传(此处重点 想要不自动上传需要选择false)
:before-upload="beforeUpload"
:before-remove="beforeRemove"
:data="uploadData" //上传时附带的额外参数
:file-list="fileList" // 上传的文件列表集合
drag //显示边框 是否启用拖拽上传
>


将文件拖到此处,或点击上传

>仅允许导入doc、docx、txt、xlsx、xls格式文件。



// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
beforeRemove(file, fileList) {
// console.log("删除文件前file", file);
// console.log("删除文件前fileList", fileList);
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
if (response.code == 200) {
this.$message({
message: "上传成功",
type: "success",
});
} else {
this.$message({
message: "上传失败",
type: "warning",
});
}
// this.upload.open = false;
// this.upload.isUploading = false;
// this.$refs.upload.clearFiles();
// this.$alert("

" + response.msg + "
", "导入结果", { dangerouslyUseHTMLString: true });
// this.getList();
},
beforeUpload(file) {},
handleUploadChange(file, fileList) {
this.fileList = fileList;
},
// 提交上传文件
submitFileForm(file, fileList) {
console.log("this.ruleForm.projectId",this.ruleForm.projectId);
let formData = new FormData();
//所需参数
this.fileList.forEach((item) => {
formData.append("files", item.raw);
});
formData.append("fileType", this.ruleForm.type);
formData.append("busId", this.ruleForm.projectId);
formData.append("busiType", 'project');
//接口
uploadFile("/common/batchUploadFile", formData).then((res) => {
if (res.code == 200) {
this.$message({
message: "上传成功",
type: "success",
});
// 关闭窗口
this.dialogVisible = false;
this.$refs.upload.clearFiles(); //清空上传的文件
this.getFileList({ busiId: this.projectId });
this.getDocType();
} else {
this.$message.error("上传失败!");
}
});
},

下载文件

api

// 下载文件
export function download_file(data) {
return request({
url: '/common/download/resource?resource=' + data.resource,
method: 'get',
responseType:'blob'
})
}

js部分

// 下载文件
downloadFile(row) {
let data = {
resource: row.filePath,
};
download_file(data).then((res) => {
let fileName = row.name;
const link = document.createElement("a");
link.download = fileName;
link.href = URL.createObjectURL(res);
link.target = "_blank";
link.style.display = "none";
document.body.appendChild(link);
link.click();
// URL.romoveObjectURL(fileUrl)
document.body.removeChild(link);
});
},


推荐阅读
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 微信小程序:授权登录与手机号绑定
    本文详细介绍了微信小程序中用户授权登录及绑定手机号的流程,结合官方指引和实际开发经验,提供了一套完整的实现方案,帮助开发者更好地理解和应用。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细解析了 offset、client 和 page 坐标系统的不同之处。offset 是相对于当前元素的边界框的距离,与滚动条无关;client 是相对于可视区域(viewport)的距离,也与滚动条无关;page 则是相对于整个文档的距离,受滚动条位置影响。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 本文详细介绍如何使用 HTML5 和 JavaScript 实现一个交互式的画板功能。通过具体代码示例,帮助读者理解 Canvas API 的基本用法及其在绘图应用中的实际应用。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • SpringMVC RestTemplate的几种请求调用(转)
    SpringMVCRestTemplate的几种请求调用(转),Go语言社区,Golang程序员人脉社 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文详细探讨了 PHP 中常见的 '未定义索引' 错误,包括其原因、解决方案及最佳实践。通过实例和代码片段,帮助开发者更好地理解和处理这一常见问题。 ... [详细]
  • springMVC JRS303验证 ... [详细]
author-avatar
手机用户2502858405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有