如何用js实现点击按钮下载文件?

如何用js实现点击按钮下载文件?,第1张

使用JavaScript原生自带的click方法就行了。

<div id="go">用户登录</div>

以上就是源代码,我想用javascript

模拟点击”用户登录“按钮。

Javascript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由欧洲电脑制造商协会通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox等)支持。

JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。

JavaScript虽与Java有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。

js里面的话只要

window.open(url)就可以了

另外你想下载文件的话html其实直接写成这种<a href="url">点击下载</a>

也是可以的,url里面写绝对路径;

nodejs对文件的读写还是相当灵活的,可以根据不同的场景来选择不同的方法。

一.直接操作文件

最简单的两个fs.readFile和fs.writeFile

  举例:这个程序的功能是将一个比较大json格式的文件转换成你想自己要格式的文件。

var fs = require('fs')

fs.readFile('./json.json',function(err,data){

if(err) throw err

var jsonObj = JSON.parse(data)

var space = ' '

var newLine = '\n'

var chunks = []

var length = 0

for(var i=0,size=jsonObj.lengthi<sizei++){

var one = jsonObj[i]

//what value you want

var value1 = one['value1']

var value2 = one['value2']

....

var value = value1 +space+value2+space+.....+newLine

var buffer = new Buffer(value)

chunks.push(buffer)

length += buffer.length

}

var resultBuffer = new Buffer(length)

for(var i=0,size=chunks.length,pos=0i<sizei++){

chunks[i].copy(resultBuffer,pos)

pos += chunks[i].length

}

fs.writeFile('./resut.text',resultBuffer,function(err){

if(err) throw err

console.log('has finished')

})

})

它的原理是将文件数据一次性全部读入内存,优点就是接下来都是在内存的操作,速度会很快。但缺点也很明显,就是当文件非常大时,会造成内存溢出。

二. 使用文件流

2.1 读取文件,api相见:fs.createReadSream 和 fs.createWriterStream

以下代码实现的功能就是通过文件流来实现图片的复制:

var fs = require('fs')

var rOption = {

flags : 'r',

encoding : null,

mode : 0666

}

var wOption = {

flags: 'a',

encoding: null,

mode: 0666

}

var fileReadStream = fs.createReadStream('./myjpg.jpg',rOption)

var fileWriteStream = fs.createWriteStream('./new_myjpg.jpg',wOption)

fileReadStream.on('data',function(data){

fileWriteStream.write(data)

})

fileReadStream.on('end',function(){

console.log('readStream end')

fileWriteStream.end()

})


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/391744.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存