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

靖江有帮助做苏宁易购网站的公司吗/网站排名靠前方法

靖江有帮助做苏宁易购网站的公司吗,网站排名靠前方法,网站建设公司好不好,聊城集团网站建设费用文章目录一、文章参考二、前台 axios 上传2.1 FormData 介绍2.2 axios.post()上传文件步骤2.3 axios 实例 上传文件三、 axios 下载文件3.1 后台定义上传和下载3.2前端axios上传下载(ajax 处理下载文件)四、例子说明4.1 后台下载使用get方法&#xff0c;前端使用<a>标签下…

文章目录

  • 一、文章参考
  • 二、前台 axios 上传
    • 2.1 FormData 介绍
    • 2.2 axios.post()上传文件步骤
    • 2.3 axios 实例 上传文件
  • 三、 axios 下载文件
    • 3.1 后台定义上传和下载
    • 3.2前端axios上传下载(ajax 处理下载文件)
  • 四、例子说明
    • 4.1 后台下载使用get方法,前端使用<a>标签下载
    • 4.2 将字符串以文件的形式下载
    • 4.3 公司下载 excel 的办法

一、文章参考

  1. FormData API 参考

二、前台 axios 上传

  1. form表单提交,method 使用post方式
  2. 表单一定要设置enctype="multipart/form-data"

2.1 FormData 介绍

FormData 接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用 XMLHttpRequest.send() 方法送出,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 “multipart/form-data”,它会使用和表单一样的格式。

FormData API 参考

2.2 axios.post()上传文件步骤

构造form’Data,使用axios上传文件
在项目中使用axios上传文件,记得new一个纯净的axios或者考虑用ajax请求。因为axios在项目估计已经用了全局配置请求头等信息,这里的配置可能被全局请求头拦截,导致请求失败。

let param = new FormData();
param.append("name", "wiiiiiinney");
//通过append向form对象添加数据
param.append("file", file);
//FormData私有类对象,访问不到,可以通过get判断值是否传进去
console.log(param.get("file"));let config = {//添加请求头headers: { "Content-Type": "multipart/form-data" },//添加上传进度监听事件onUploadProgress: e => {var completeProgress = ((e.loaded / e.total * 100) | 0) + "%";this.progress = completeProgress;}
};axios.post('http://127.0.0.1:8778/upload', param, config)
.then(function (response) { console.log(response); 
})
.catch(function (error) {console.log(error);
});

2.3 axios 实例 上传文件

在这里插入图片描述

<template><section class="text_messaging"><span class="breadcrumbBtnGroup"><el-button type="link" @click="importClick">导入</el-button><!-- 不显示 文件上传的图标 --><input ref="inputfile" type="file" style="visibility:hidden" @change="riverConfigImport"/></span></section>
</template><script>
import * as API from '@/api/index.js'
export default {methods: {importClick () {this.$refs.inputfile.click()},// 导入河段配置riverConfigImport (event) {console.log(arguments)debuggerconst file = event.target.files[0]let param = new FormData();//通过append向form对象添加数据param.append('file', file);//FormData私有类对象,访问不到,可以通过get判断值是否传进去console.log(param.get('file'));let config = {//添加请求头headers: { 'Content-Type': 'multipart/form-data' },};API.riverConfigImportService(param, config).then(res=> {if (res.msg === 'success') {this.$message({message: '上传成功!',type: 'success'})}})}}
}
</script>

API 配置文件index.js

const http = axios.create({timeout: 20000,withCredentials: true,headers: { 'X-Requested-With': 'XMLHttpRequest' },
})// 导入河段配置
export const riverConfigImportService = (data, config = {}) => {return http({method: 'post',url: '/aaaaaa/v1/riverConfig/import',config,data})
}

三、 axios 下载文件

  1. 请求的响应类型必须为 ‘arraybuffer’ 或者 ‘blob’
  2. 对后台返回的数据流做处理,让浏览器下载(可以看后面的例子)

3.1 后台定义上传和下载

var express = require('express');
var router = express.Router();
var fs = require('fs');
const path = require('path')
// 下载文件依赖的库
var multer  = require('multer');
// 文件储存路径
var upload = multer({dest: 'upload_tmp/'});/*** upload 模块index* */
router.get('/', function(req, res, next) {res.render("upload/index",{title:"nodejs上传文件测试"});
});// 上传文件
router.post('/upload',upload.any(), function(req, res, next) {console.log(req.files);  // 上传的文件信息var des_file = "./uploadfile/" + req.files[0].originalname;// 获取上传文件同时传递过来的参数console.log(req.body.name)fs.readFile( req.files[0].path, function (err, data) {fs.writeFile(des_file, data, function (err) {if( err ){console.log("error")console.log( err );}else{console.log("sucess")response = {message:'File uploaded successfully',filename:req.files[0].originalname};console.log( response );res.end( JSON.stringify( response ) );}});});
});// 下载 get 请求
router.get('/loadimg', function(req, res, next) {console.log(req)let imgid = req.param('imgid');debuggerlet file = path.join(__dirname,'./222.png');console.log(file);res.download(file); 
});// 下载 post请求
router.post('/loadimg', function(req, res, next) {console.log(req)let imgid = req.param('imgid');debuggerlet file = path.join(__dirname,'./222.png');console.log(file);res.download(file); 
});module.exports = router;

3.2前端axios上传下载(ajax 处理下载文件)


<!DOCTYPE html>
<html lang="zh-CN">
<head><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="/public/css/bootstrap.min.css"><link rel="stylesheet" href="/public/css/hb_wap.css"><script src="/public/js/axios.min.js"></script><title><%=title%></title>
</head>
<body ><!-- <form action="/sqh/upload" method="post" enctype ="multipart/form-data"> --><input type="file" name="myfile" id="fileInput"/><button onclick="uploadAction()">上传图片</button> <div><button onclick="downloadGetAction()">下载图片 downloadGetAction</button> </div><div><button onclick="downloadPostAction()">下载图片 downloadPostAction</button> </div>
<!-- </form> --></body>
<script>
// 上传图片
function uploadAction () {var fileWidget = document.getElementById('fileInput')console.log(fileWidget)debuggerlet param = new FormData();param.append("name", "wiiiiiinney");let file = fileWidget.files[0]if (!file) {alert('请先选择上传的问题件')return false}//通过append向form对象添加数据param.append("file", file);//FormData私有类对象,访问不到,可以通过get判断值是否传进去console.log(param.get("file"));let config = {//添加请求头headers: { "Content-Type": "multipart/form-data" },//添加上传进度监听事件onUploadProgress: e => {var completeProgress = ((e.loaded / e.total * 100) | 0) + "%";this.progress = completeProgress;}};axios.post('http://127.0.0.1:3000/upload/upload', param, config).then( function (response) { console.log(response);debugger}).catch(function (error) {console.log(error);});
}// 下载图片
function downloadGetAction () {axios({method: 'GET',url: 'http://127.0.0.1:3000/upload/loadimg',// 设置 header 参数// headers: {//   'Access-Control-Expose-Headers': 'Content-Disposition'// },responseType: 'blob', // 一定要设置响应类型,否则不能正确处理响应的数据data: {myname: 'huangbiao',age: 18}}).then(function (res) {let blob = new Blob([res.data], {//   type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'})let downloadElement = document.createElement('a')let href = window.URL.createObjectURL(blob) // 创建下载的链接downloadElement.href = hrefdownloadElement.download = new Date().getTime + '.png' // 下载后文件名document.body.appendChild(downloadElement)downloadElement.click() // 点击下载document.body.removeChild(downloadElement) // 下载完成移除元素window.URL.revokeObjectURL(href) // 释放blob对象})
}// 下载图片
function downloadPostAction () {axios({method: 'POST',url: 'http://127.0.0.1:3000/upload/loadimg',// 设置 header 参数, 可以添加token// headers: {//   'Access-Control-Expose-Headers': 'Content-Disposition'// },responseType: 'arraybuffer', // 一定要设置响应类型,否则不能正确处理响应的数据data: {myname: 'huangbiao',age: 18}}).then(function (res) {let blob = new Blob([res.data], {//   type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'})let downloadElement = document.createElement('a')let href = window.URL.createObjectURL(blob) // 创建下载的链接downloadElement.href = hrefdownloadElement.download = new Date().getTime + '.png' // 下载后文件名document.body.appendChild(downloadElement)downloadElement.click() // 点击下载document.body.removeChild(downloadElement) // 下载完成移除元素window.URL.revokeObjectURL(href) // 释放blob对象})
}
</script>
</html>

四、例子说明

4.1 后台下载使用get方法,前端使用<a>标签下载

// 使用GET 方法,实现文件的下载
downFileByGet (file) {var url = '/api/v1/event/download?documentUrl=' + file.urlvar a = document.createElement('a')a.href = encodeURI(url)a.setAttribute('target', '_blank')a.download = file.namea.click()
}

4.2 将字符串以文件的形式下载

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><button onclick="downloadByBlob()">下载</button></body><script>//通过FileReader转化为base64字符串下载function downloadByBlob() {const content = '{a: "hb"}';let blob = new Blob([content], {type: "text/plain;charset=utf-8",});let reader = new FileReader();reader.readAsDataURL(blob);reader.onload = function(e) {let a = document.createElement("a");a.download = "a.txt";a.href = e.target.result;document.body.appendChild(a);a.click();document.body.removeChild(a);};}</script>
</html>

4.3 公司下载 excel 的办法

// Vue 下载触发的方法
downloadFile({ fileName: row.filePath }).then(res => {// console.log(res)const blob = new Blob([res], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'})const downloadElement = document.createElement('a')downloadElement.style.display = 'none'const href = window.URL.createObjectURL(blob) // 创建下载的链接downloadElement.href = hreflet fileName = row.nameif (!fileName) {fileName = '模板' + moment().format('YYYY-MM-DD') + '.pdf' // 下载后文件名}downloadElement.download = fileName // 下载后文件名document.body.appendChild(downloadElement)downloadElement.click() // 点击下载document.body.removeChild(downloadElement) // 下载完成移除元素window.URL.revokeObjectURL(href) // 释放blob对象this.$message.success('下载成功')})
},// API 请求设置
// 文件下载
export const downloadFile = params => {return http({method: 'get',url: `${BASE_URL}/download`,params,responseType: 'blob'})
}// axios拦截器做的处理
// 文件下载 二进制流数据
if (response.request.responseType === 'blob') {if (response.data) {return Promise.resolve(response.data)} else {Message.error('文件不存在')return Promise.reject(response)}
}
http://www.lbrq.cn/news/1383805.html

相关文章:

  • 网站目录是什么/竞价排名是什么
  • 固原市住房和城乡建设厅网站/长沙seo平台
  • app开发开发公司/seo关键词优化软件
  • window做网站的软件下载/建站流程新手搭建网站第一步
  • 怎么在搜狐快站上做网站/抖音seo推广外包公司好做吗
  • 什么网站能免费做公众号封面/长沙网站推广服务公司
  • 网站已付款方式/上海做网站优化
  • 深圳网站制作长沙/长沙正规关键词优化价格从优
  • 专业医疗网站建设/武汉seo计费管理
  • 台州建设规划局网站/网站友情链接交易平台
  • 制作微网站的费用/南京seo代理
  • 无锡微信网站开发/百度应用商店官网
  • 网站做排名靠前/百度外推排名
  • 响应式 官网网站/潍坊seo网络推广
  • 做网站即墨/他达那非副作用太强了
  • 广州软件开发外包/杭州seo俱乐部
  • 中山精品网站建设新闻/品牌推广方案案例
  • 网站开发属于IT行业/百度广告推广费用年费
  • 做片头片尾比较好的网站/找客户的软件有哪些
  • 南阳做网站/合肥百度关键词推广
  • 女和女做网站/神马推广登录
  • 原子艺术做的网站怎么样子/自己怎么优化网站
  • 娄底企业网站建设制作/公司网站建设哪家公司好
  • 做初中数学题的网站/淘宝推广方法有哪些
  • 成都建站开发/网络营销ppt模板
  • 如何做新闻源网站/信息流优化师培训
  • 大都会app约/站群seo
  • 重庆网站制作机构/朋友圈营销广告
  • 山西运城给网站做系统的公司/电商平台排行榜
  • 视频网站开发视频/电商运营怎么自学
  • Deep Research(信息检索增强)认识和项目实战
  • 【Zustand】从复杂到简洁:Zustand 状态管理简化实战指南
  • 【Linux篇章】穿越数据迷雾:HTTPS构筑网络安全的量子级护盾,重塑数字信任帝国!
  • 负载均衡集群HAproxy
  • 力扣热题100----------41.缺少的第一个正数
  • 怎样让阿里云服务器(centos)有界面