您的位置:

如何从js文件上传问题(js读取上传的文件)

如何从js文件上传问题(js读取上传的文件)

更新:

本文目录一览:

如何通过js完成多个文件的上传

HTML5 file组件的新属性

accept : 如果在file组件中增加这个属性就可以直接控制上传的文件类型了,实在是很方便。

multiple:是否允许选择多个文件

HTML5 页面代码修改后

img width="400" height="250"/br /

input type="file" id="pic" name="pic" onchange="printFileInfo()" accept="image/*" multiple="multiple"/

input type="button" value="上传图片" onclick="uploadFile()" /br /

div id="parent"

div id="son"/div

/div

accept 的值可以参阅:IANA MIME 类型(标准 MIME 类型的完整列表),如果使用的是DW开发的话,软件本身就有提示。

如果选择了多个文件,可以用JS做循环打印,看看文件的名称,类型和大小,看演示代码

function printFileInfo(){

var picFile = document.getElementById("pic");

var files = picFile.files;

for(var i=0; ifiles.length; i++){

var file = files[i];

var div = document.createElement("div")

div.innerHTML = "第("+ (i+1) +") 个文件的名字:"+ file.name +

" , 文件类型:"+ file.type +" , 文件大小:"+ file.size

document.body.appendChild( div)

}

}

既然可以循环多文件的话,就可以尝试多文件上传了。

1、首先创建 XMLHttpRequest 对象

//这是全局变量。因为是示例,所以就没有判断浏览器类型,低版本IE这么写的话会出问题的

var xhr = new XMLHttpRequest()

2、上篇介绍了进度事件(Progress) , 这次实现 progress 和 error 2个事件

error:在请求发生错误时触发。

对应上传时发生错误导致的上传失败:uploadFailed()

//上传失败

function uploadFailed(evt) {

alert("上传失败");

}

progress:在接收相应期间持续不断触发。

对应上传进度方法:onprogress()

/**

* 侦查附件上传情况 ,这个方法大概0.05-0.1秒执行一次

*/

function onprogress(evt){

var loaded = evt.loaded; //已经上传大小情况

var tot = evt.total; //附件总大小

var per = Math.floor(100*loaded/tot); //已经上传的百分比

$("#son").html( per +"%" );

$("#son").css("width" , per +"%");

}

最后就是上传方法了,注意上面的html代码中上传用的方法也需要改成这个uploadFile()方法才能正常使用。

//上传文件

function uploadFile() {

//将上传的多个文件放入formData中

var picFileList = $("#pic").get(0).files;

var formData = new FormData();

for(var i=0; i picFileList.length; i++){

formData.append("file" , picFileList[i] );

}

//监听事件

xhr.upload.addEventListener("progress", onprogress, false);

xhr.addEventListener("error", uploadFailed, false);//发送文件和表单自定义参数

xhr.open("POST", "upload");

//记得加入上传数据formData

xhr.send(formData);

}

js 大文件分片上传处理如何实现?

推荐采用webuploader控件来解决。

关于WebUploader的功能说明:

大文件上传续传

支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。

开源

提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。

分片、并发

分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。

当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。

预览、压缩

支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。

解析jpeg中的meta信息,对于各种orientation做了正确的处理,同时压缩后上传保留图片的所有原始meta数据。

多途径添加文件

支持文件多选,类型过滤,拖拽(文件文件夹),图片粘贴功能。上传本地指定路径的文件,不需要通过点击按钮选择文件。

粘贴功能主要体现在当有图片数据在剪切板中时(截屏工具如QQ(Ctrl + ALT + A), 网页中右击图片点击复制),Ctrl + V便可添加此图片文件。

HTML5 FLASH

兼容主流浏览器和低版本浏览器,接口一致,实现了两套运行时支持,用户无需关心内部用了什么内核。而且支持IE6,IE8浏览器。

同时Flash部分没有做任何UI相关的工作,方便不关心flash的用户扩展和自定义业务需求。

基于内存映射模式进行IO操作,充分发挥操作系统性能。

MD5秒传

当文件体积大、量比较多时,支持上传前做文件md5值验证,一致则可直接跳过。

如果服务端与前端统一修改算法,取段md5,可大大提升验证性能,耗时在20ms左右。

易扩展、可拆分

采用可拆分机制, 将各个功能独立成了小组件,可自由搭配。

采用AMD规范组织代码,清晰明了,方便高级玩家扩展。

js文件上传中遇到的知识点

在前端开发中,我们经常遇到上传文件的需求,以前都是用到时再找资料,但总是感觉对这块不熟,最近翻资料学习了一下,记录一下。

本文中涉及的知识点有:FileList对象,Blob对象,File对象,URL对象、FormData对象等。

本文参考 网道 ,总结而来。另外,强烈推荐网道,可以去 网道的官方 看看,是阮一峰大神发起的项目,提供互联网开发文档,文档非常全面易懂。

FileList对象,是一个像数组的对象,拥有length属性和item()方法,同时,它的每一项都是File对象。

input 标签,将type设为file,之后得到的files属性就是一个FileList对象。

blob 对象表示1个二进制文件的数据内容。blob对象和arraybuffer区别是,blob对象用于操作二进制文件,arraybuffer用于操作内存。

blob 对象拥有2个属性和1个方法,分别是size(单位是字节)、type属性和slice()方法。

File 对象是一种特殊的Blob 对象。它在继承了size、type属性外,还同时有name、lastModified、lastModifiedDate等几个属性。

FileList 对象中的每一项都是File 对象。

拿到File 对象之后就要进行操作,下面是操作。

URL.createObjectURL(file) 允许为File 对象创建一个临时链接,

FileReader 对象的属性和方法比较多,属性中比较重要的是result,方法中比较重要的是

FileReader 对象的所有属性和方法可以参考 这里 ,这里就不再列出来了。

在早期的互联网时候,提交数据都是用表单。表单提交数据有些缺陷,例如无法校验表单数据,会刷新整个页面等。随着Ajax的兴起,页面表单提交数据慢慢退出历史舞台,但有时上传文件时我们偶尔会用到表单提交数据。

在调用构造函数new FormData(form)构造formdata对象时需要传入form节点,如果不传入,则默认构建空表单。如果传入,则按照key=value的时候构建表单。

可以看看效果图

FormData 对象主要的方法有:

cavas压缩图片其实很简单,无非就是几个步骤:

1、选择图片,判断图片是否大于2M(用File对象的size进行判断,size的单位是字节);

2、用FileReader对象读取文件成base64,

3、然后创建Image对象,赋值src属性,在Image对象加载完成的回调里创建cavas并绘制图片(根据图片是否大于2M动态调整画布大小);

4、将cavas转成blob,拼在formdata中用ajax上传。

这篇文章到这里也就结束了,这篇文章包含了一些浏览器中提供的对象,可以看到都是很简单的内容。

js如何上传文件

js采用File API 来上传文件的。

File API 由一组 JavaScript 对象以及事件构成。赋予开发人员操作在 input type=”file” … / 文件选择控件中选定文件的能力。图 1 展示了 File API 所有的 JavaScript 的组合关系。

File API 简单示例

body

h1File API Demo/h1

p

!-- 用于文件上传的表单元素 --

form name="demoForm" id="demoForm" method="post" enctype="multipart/form-data"

action="javascript: uploadAndSubmit();"

pUpload File: input type="file" name="file" //p

pinput type="submit" value="Submit" //p

/form

divProgessing (in Bytes): span id="bytesRead"

/span / span id="bytesTotal"/span

/div

/p

/body

运行效果:

egg.js 文件上传

小文件的话就不需要使用文件流了

需要在config.default.ts(egg.js修改默认配置的文件)指定文件的限制

一般来说超过1mb的文件,在上传的时候最好以流的形式去处理

egg.js中也提供的这类的插件

同样的需要修config.default.ts文件,去限制文件的最大长度,如果不限制的话会默认是100kb的,这个要注意

如何从js文件上传问题(js读取上传的文件)

本文目录一览: 1、如何通过js完成多个文件的上传 2、js 大文件分片上传处理如何实现? 3、js文件上传中遇到的知识点 4、js如何上传文件 5、egg.js 文件上传 如何通过js完成多个文件的

2023-12-08
js实现文件上传csdn(js获取上传文件)

本文目录一览: 1、请高手给一个JS多文件上传的例子(必须兼容IE)解决追加50分。请看补充。 2、如何从js文件上传问题,怎么解决 3、js如何上传文件 4、使用jquery.form.js实现文件

2023-12-08
js上传文件时计算文件的大小(js大文件上传)

本文目录一览: 1、js 如何获取上传文件的大小 2、完美解决js校验文件大小 3、如何通过js获取上传文件尺寸 4、js怎么判断上传文件的大小 5、IE8以上,用js获取上传文件大小和绝对路径的实现

2023-12-08
js获取上传文件的完整路径(js获取文件绝对路径)

本文目录一览: 1、java或js(可用jquery)如何获取上传文件原始路径名? 2、javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg 3、jsp页面如何用js获取上传

2023-12-08
js动态添加上传文件按钮(js自动上传文件)

本文目录一览: 1、js如何上传文件 2、几种js实现的动态多文件上传 3、用javascript写了一个动态增加的按钮 4、javascript 怎么添加按钮? 5、js及jquery实现动态的文件

2023-12-08
js上传geojson文件(geojson格式)

本文目录一览: 1、js怎么解析geojson 格式的 2、APP发布到APP store时限制区域geojson格式文件怎么生成 3、Mapshaper 笔记一:地图综合神器 4、js post怎样

2023-12-08
将数据库中的数据传给js(如何将文件上传到数据库)

本文目录一览: 1、如何把数据库中的数据赋值到js定义的数组里 2、关于数据库值传给javascript代码 3、如何将数据库的数据传到javascript中调用 4、怎样将jsp中从MySQL数据库

2023-12-08
php第三方文件上传插件(php上传文件夹)

2022-11-12
js对上传文件加密(js地址传参数加密和解密)

本文目录一览: 1、关于js 函数加密 2、请问 上传文件的时候想在前端先进行加密? 3、介绍一点js加密的方法 4、求JS文件的加密与解密 关于js 函数加密 pre t="code" l="js"

2023-12-08
js可以控制文件上传的速度吗,js 文件上传进度

本文目录一览: 1、如何使用javascript 控制图片的速度 2、浏览器会限制js上传文件大小吗 3、js 大文件分片上传处理如何实现? 4、前端上传文件实时显示进度条和上传速度的工作原理是怎样的

2023-12-08
JS读取JSON文件

2023-05-19
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
js判断上传文件是否选择代码,js判断上传的是不是图片

本文目录一览: 1、如何判断uploadify插件是否选择了文件 2、上传文件前先用js判断有没有选择文件 3、用JS怎么判断上传文件控件是否未选择文件 如何判断uploadify插件是否选择了文件

2023-12-08
js问题传递变值给php,js 值传递

本文目录一览: 1、如何把一个js变量传给php变量 2、js如何传值给php? 3、如何将js变量赋值给php 如何把一个js变量传给php变量 js仅在 浏览器中运行.php 仅在服务器端运行.2

2023-12-08
Java大文件上传解决方案

2023-05-18
java中ajax上传图片,JAVA图片上传

2022-11-18
js解压zip文件,js zip解压

2022-11-23
js读写网络文件(js读取文本文件)

本文目录一览: 1、javascript 能读取网络文件。各位老大,谁会做啊? 我在服务器上写了个txt文件,客户端需要读去 2、如何在页面上的JS读取其他JS文件数组 3、javascript 读取

2023-12-08
java视频上传,文件上传java

2022-12-01
从js传属性到css文件中(js引入css文件)

本文目录一览: 1、JS如何赋值给CSS? 2、在JS文件中调用外部CSS文件 3、救命,如何用js给div标签添加css属性,当鼠标事件发生的时候,譬如点击某个元素 4、求教:JS代码怎么在css标

2023-12-08