file js new 传到后台_JS读取文件且AJAX传输到后台
前端JS只允许读取文件,出于安全考虑JS并不允许修改、删除本地文件。那么JS如何读取选择的文件内容呢?
标签: 上传
JS读取文件的关键代码或步骤:this.files、new FileReader()、readAsText、this.result、new XMLHttpRequest()
选择文件后的效果截图
HTML代码
JAVASCRIPT代码
/**
* Created by Administrator on 2016-09-28.
*/
document.getElementById('mySelect').onchange =function(){
//var file = $(this).prop('files')[0]; //Blob二进制对象
varfile =this.files[0];
if(file){
varreader =newFileReader();
reader.readAsText(file,'GBK');//读取文件内容, 注意编码格式: 如果乱码则换成UTF-8
reader.onload = function(e){
vartext =this.result;//e.target.result
varsDataXHR = {
requestURL:'/api/upload',
requestMethod:'POST',
requestData:text,
succeedHtml:'',
failedHtml:''
};
XMLHttpRequestFn(sDataXHR); //向后台发送
}
}
};
functionXMLHttpRequestFn(sData){
varrequestMethod = sData.requestMethod,//POST、GET..
requestURL = sData.requestURL, //请求的地址
requestData = sData.requestData, //待发送的数据
succeedHtml = sData.succeedHtml, //成功提示信息
failedHtml = sData.failedHtml; //失败提示信息
varxhr =newXMLHttpRequest();
//var xhr = new ActiveXObject("Microsoft.XMLHTTP");//针对IE5、IE6
xhr.open(requestMethod, requestURL,true);
xhr.overrideMimeType("application/octet-stream");//数据以流的形式上传(非必须)
xhr.send(requestData);
xhr.onreadystatechange = stateChangeFn;
functionstateChangeFn(){
if(xhr.readyState == 4){//0->1->2->3->4的过程
if(xhr.status == 200){//不管是GET还是POST都返回200
//console.log(xhr.response);//{"code":1,"message":""}
if(succeedHtml)
AjaxDialogTips(succeedHtml,0,3);
}else{
if(failedHtml)
AjaxDialogTips(failedHtml,3,3);
}
}
}
}
什么是XMLHttpRequest?
XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出POST和HEAD请求以及普通的GET请求的能力。
XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。
尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。
XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。
所有现代浏览器 (IE7+、Firefox、Chrome、Safari 以及 Opera) 都内建了 XMLHttpRequest 对象。
任何 W3C 推荐标准均未规定 XMLHttpRequest 对象,即XMLHttpRequest对象目前还不是W3C的标准,但是 W3C 已经开始了标准化的工作。
有关XMLHttpRequest对象的详细介绍,大家可以参考W3SCHOOL:http://www.w3school.com.cn/xmldom/dom_http.asp
XMLHttpRequest对象的返回值
输出XMLHttpRequest对象的返回值:
onabort:null
onerror: null
onload: null
onloadend: null
onloadstart: null
onprogress: null
onreadystatechange: null
ontimeout: null
readyState: 4
response: "{"code":1,"message":""}"
responseText: "{"code":1,"message":""}"
responseType: ""
responseURL: "http://rd.drugcloud.net/api/mi/druginfo/upload"
responseXML: null
status: 200
statusText: "OK"
timeout: 0
file js new 传到后台_JS读取文件且AJAX传输到后台相关推荐
- JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法
JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法 获取input框用户输入信息数组存储 var datas = {Id: idData.id,OrderDetailCode: ...
- node.js fs.open 和 fs.write 读取文件和改写文件
Node.js的文件系统的Api //公共引用 var fs = require('fs'), path = require('path'); 1.读取文件readFile函数 //readFile( ...
- java 图片分段上传_java实现分段读取文件并通过HTTP上传的方法
本文实例讲述了java实现分段读取文件并通过HTTP上传的方法.分享给大家供大家参考.具体如下: 1.首先将文件分段,用RandomAccessFile 2.分段后将分出的内容上传到http URL ...
- ajax读取文件数据,Ajax 实现读取 properties 格式资源文件数据
Ajax 的核心是 JavaScript 对象 XmlHttpRequest.该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术.简而言之,XmlHttpRequ ...
- js bind 传参、_js中的面向对象(一)
面向对象要解决的问题 提到面向对象,大家的第一反应就是封装.继承和多态.对其做如下解释: 封装:影藏细节(A对A--将多行代码取个名字或A对B--API调用合作) 继承:继承的意思就是同上跟上述一样, ...
- js onclick传参对象_js中onClick([object object])的传参问题。跪求!
你的位置: 问答吧 -> JavaScript -> 问题详情 js中onClick([object object])的传参问题.跪求! 问题是这样的,看代码 for(var i=0;i ...
- ssh2 文件服务器,使用Node.js和SSH2从SFTP服务器读取文件
当我在文件上使用readdir时,文件的大小是正确的. 使用FTP(JSFTP)对我的开发FTP服务器使用上面相同的技术工作得很好. 醇> 任何建议表示赞赏! 这是我的代码: var Clien ...
- php后台登录页修改成ajax,使用php后台给自己做一个页面路由,配合ajax实现局部刷新。(示例代码)...
今天就要放假了,把近来囤积的小玩意儿总结整理一下. 在请求一个html页面来嵌入到当前页会有一个问题,就是跟随请求过来的html他的样式表和脚本会失效.是因为文档加载的先后顺序等问题造成的.因此,加载 ...
- Promise(一)介绍、fs读取文件、AJAX请求
Promise 一.promise介绍与基本使用 1.promise是什么 1.1 抽象表达 1)Promise是一门新的技术(ES6规范) 2)Promise是JS中进行异步编程的新解决方案(ps: ...
- node.js:fs.open 和 fs.write 读取文件和改写文件
node.js fs.open 和 fs.write 读取文件和改写文件 Node.js的文件系统的Api //公共引用 var fs = require('fs'), path = require( ...
最新文章
- 如何在浏览器上跑深度学习模型?并且一行JS代码都不用写
- Zabbix5.0监控系统安装详解
- 使用T-SQL导入多个文件数据到SQL Server中一文的疑惑
- Python 技术篇-利用pyqt5库监听剪切板变动,clipboard.dataChanged.connect()剪切板监听
- 什么是informer机制
- 【shell】shuf命令,随机排序
- How UI5 and FIORI deliver central Javacript library code MIME
- 事件总线(Event Bus)知多少
- ssh sftp 免密码 公钥登录
- Visual Studio Code 前端调试不完全指南
- 稀疏矩阵的压缩存储--十字链表(转载)
- 基于MaxCompute的拉链表设计
- numpy二维数组改变某些数_机器学习:Python常用库——Numpy库
- 腾讯AI让二子,柯洁还是输了
- 标签生成html怎么转换,如何进行HTML到XML转换以生成封闭标签?
- 游戏开发unity杂项知识系列:Failed to resolve project template:Failed to decompress
- Coursera | Introduction to Data Science in Python(University of Michigan)| Assignment3
- 李宏毅机器学习作业6-使用GAN生成动漫人物脸
- 从包工头到程序猿(三)味道
- 宿迁学院计算机二级必须要过吗,宿迁学院四级没过能拿到学位证书吗
热门文章
- 大写金额用计算机简单些,大写一到十怎么写 数字一到十的大写怎么写(开票用的大写)...
- Quartz配置文件quartz.properties加载
- 全国大学生数学建模2016年A题系泊系统的设计论文与代码
- myeclipse安装使用svn
- AGV机器人RFID传感器CK-G06A与西门子1200PLC应用手册
- 数据库连接池Spring JDBC(JdbcTemplate)
- C3P0连接池的使用
- [个人自用,全网最优]EDEM-FLUENT个人自学教程,拒绝手忙脚乱无用功!
- 力软敏捷开发平台源码7.0.6
- 单片机开发软件keil4和proteus的使用教程(超详细)_☆往事随風☆的博客