一、读取文件为blob并上传到服务器

HTML

<div class="container"><!--读取要上传的文件--><input type="file" id="file"  /><input type="button" id="btn1" value="点击上传" onclick="uploadClick();" />
</div>

JS

//读取图片实例,并上传到服务器
var fileBox = document.getElementById('file');
fileBox.onchange = function () {//获取选择文件的数组var fileList = fileBox.files;for (var i = 0; i < fileList.length; i++) {var file = fileList[i];uploadFile(file);}
}
//关键代码上传到服务器
function uploadFile(file) {var reader = new FileReader();reader.readAsArrayBuffer(file);reader.onload = function () {var blob = new Blob([reader.result]);//提交到服务器var fd = new FormData();fd.append('file', blob);var ext = file.name.substring(file.name.lastIndexOf('.'));fd.append('extention', ext);fd.append('maxsize', 1024*1024*4);//Asp.net 默认一次上传最大4MBfd.append('isClip', -1);var xhr = new XMLHttpRequest();xhr.open('post', '../ashx/upload.ashx', true);xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var data = eval('(' + xhr.responseText + ')');console.info(data);if (data.success) {//上传成功var imgName = data.msg;alert(imgName);} else {alert(data.msg);}}}//开始发送
        xhr.send(fd);}
}

后台C#处理关键代码:

//接收文件
HttpRequest req = _Context.Request;
string newname = _fileInfo.CreateNewName(newExtention);
//接收二级制数据并保存
Stream stream = _PostedFile.InputStream;
byte[] dataOne = new byte[stream.Length];
stream.Read(dataOne, 0, dataOne.Length);
FileStream fs = new FileStream(_fileInfo.TempFile + newname, FileMode.Create, FileAccess.Write);
try
{fs.Write(dataOne, 0, dataOne.Length);
}
finally
{fs.Close();stream.Close();
}
return newname;

二、读取图片文件,并上传到服务器

HTML

<div class="container"><!--图片类型验证方法1--><input type="file" id="file" accept="image/*" /><input type="button" id="btn1" value="点击上传" onclick="uploadClick();" /><h4>选择文件如下:</h4><img src="" id="img1" />
</div>

JS:

//读取图片实例,并上传到服务器
var fileBox = document.getElementById('file');
fileBox.onchange = function () {//获取选择文件的数组var fileList = fileBox.files;for (var i = 0; i < fileList.length; i++) {var file = fileList[i];//图片类型验证第二种方式if (/image\/\w+/.test(file.type))readFile(file);elseconsole.log(file.name + ':不是图片');}
}
//读取二进制图片文件,并上传到服务器
function uploadClick() {var fileList = fileBox.files;for (var i = 0; i < fileList.length; i++) {var file = fileList[i];//图片类型验证第二种方式if (/image\/\w+/.test(file.type))uploadFile(file);elseconsole.log(file.name + ':不是图片');}
}
//关键代码上传到服务器
function uploadFile(file) {var reader = new FileReader();reader.readAsArrayBuffer(file);reader.onload = function () {var blob = new Blob([reader.result], { type: 'image/jpg' });//提交到服务器var fd = new FormData();fd.append('file', blob);var ext = file.name.substring(file.name.lastIndexOf('.'));fd.append('extention', ext);fd.append('isClip', -1);var xhr = new XMLHttpRequest();xhr.open('post', '../ashx/upload.ashx', true);xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var data = eval('(' + xhr.responseText + ')');console.info(data);if (data.success) {//上传成功var imgName = data.msg;alert(imgName);} else {alert(data.msg);}}}//开始发送
        xhr.send(fd);}
}
//读取图片内容 为DataURL
function readFile(file) {var reader = new FileReader();reader.readAsDataURL(file);reader.onload = function (e) {var result = reader.result;$('.container blockquote').text(result);$('#img1').attr('src', result)}
}

后台关键代码处理同上。

读取文件二:http://www.cnblogs.com/tianma3798/p/5839791.html

读取文件一:http://www.cnblogs.com/tianma3798/p/4355949.html

HTML5 文件域+FileReader 读取文件并上传到服务器(三)相关推荐

  1. html5文件域的自动获取,HTML5 文件域+FileReader 读取文件(一)

    在HTML5以前,HTML的文件上传域的功能具有很大的局限性,这种局限性主要体现在如下两点: 每次只能选择一个文件进行上传 客户端代码只能获取被上传文件的文件路径,无法访问实际的文件内容 一.File ...

  2. java中filereader读取文件_FileReader读取文件

    前言:FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件. input:file 在介绍FileReader之前,先简单介绍input的file类型. inp ...

  3. 【java小知识】FileReader读取文件出现乱码的解决办法

    转1:https://blog.csdn.net/a532672728/article/details/79432619 转2:https://www.cnblogs.com/qq78292959/p ...

  4. Html5+NodeJS——拖拽多个文件上传到服务器

    实现多文件拖拽上传的简易Node项目,可以在github上下载,你可以先下载下来:https://github.com/Johnharvy/upLoadFiles/. 解开下载下的zip格式包,建议用 ...

  5. 解决fileReader读取文件乱码

    解决fileReader读取文件乱码 idea默认编码格式是utf-8(标准万国码的一种),而Windows操作系统默认是GBK(中文码表),如果fileReader读取系统中的文件,则无法将字节转换 ...

  6. FileReader读取文件的三种方式

    #日常练习 FileReader可以通过一次读取文件中一个字符,一次读取一个字符数组或使用缓冲区这三种方式来读取文件 备注:使用缓冲区的方式的内部实现是借助数组完成 package IO;import ...

  7. 关于java本地读取文件和打包成jar上传到服务器读取的区别

    这个问题在工作中经常遇到,做个笔记以免忘记! 通常我们在开发中本地读取文件在类似在springboot目录下如下: 我们可以各种方法读取到文件路径并且包括文件内容,但是项目打成jar上传到服务器后,很 ...

  8. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  9. html访问手机相册,使用HTML5的FileReader读取手机图片(还可选择拍照), 并自动异步上传到服务器上...

    使用html5 FileReader获取图片,并异步上传到服务器(not iframe) body{margin: 0px; background:#f2f2f0;} p{margin:0px;} . ...

最新文章

  1. uglifyjs压缩js文件
  2. 蓝桥杯java第六届决赛第四题--穿越雷区
  3. java项目(java project)如何导入jar包的解决方案列表
  4. JDK1.5 与 JDK1.6的新特性
  5. 第一百一十四期:盘点十大最新Web UI测试工具
  6. html表单实验总结,HTML表单总结
  7. Canny边缘检测及C++实现
  8. 前端,到底什么来路?
  9. 信息化建设规划_中小型企业信息化建设规划方案
  10. acwing蓝桥杯刷题
  11. iphone/ipad 连接smb服务器,实现局域网内文件共享
  12. 【win10+cuda7.5+cudnn6.0安装caffe⑥】报错及处理方式
  13. vscode vue es6语法配置检测
  14. php语句连接,php – 内连接选择语句
  15. 自上而下拆解Synchronized
  16. (CVPR 2020)3DSSD: Point-based 3D Single Stage Object Detector
  17. 简易的共享交通系统管理系统
  18. 金融业务知识(2):股票交易的基本流程
  19. 编程珠玑——取样总结
  20. 动网8.2版本的注入漏洞的利用

热门文章

  1. 中美5G竞争的未来路线图
  2. 腾讯姚星:两大科技矩阵助力两张网,立志攻克通用人工智能和多模态问题
  3. 超越“机器人三定律” 人工智能期待新伦理
  4. IDC与百度联合发报告:预测2019年人工智能十大趋势
  5. 李德毅:“反用驾驶脑”测认知能力,谁说酒驾一定违规?
  6. 数据洪流时代的芯片之变
  7. 5G 发展报告:以四项技术为基础,广泛应用还需十年
  8. 谷歌放出AI平民化大招: 李飞飞宣布推出AutoML云平台,让普通企业也能用上深度学习
  9. 2018年全球5G的12大趋势
  10. 腾讯AI Lab解析2017 NIPS三大研究方向,启动教授及学生合作项目