HTML5 文件域+FileReader 读取文件并上传到服务器(三)
2016-09-04 17:25
429 查看
一、读取文件为blob并上传到服务器
HTML
JS
后台C#处理关键代码:
二、读取图片文件,并上传到服务器
HTML
JS:
后台关键代码处理同上。
读取文件二:http://www.cnblogs.com/tianma3798/p/5839791.html
读取文件一:http://www.cnblogs.com/tianma3798/p/4355949.html
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 默认一次上传最大4MB 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); } }
后台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); else console.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); else console.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 分段读取文件并上传到服务器(解决传输量小 慢)
- HTML5 文件域+FileReader 分段读取文件并上传到服务器(六)
- HTML5 文件域+FileReader 分段读取文件并上传-WebSocket
- HTML5 文件域+FileReader 分段读取文件并上传(八)-WebSocket
- HTML5 文件域+FileReader 分段读取文件并上传(七)-WebSocket
- html5 multiple多文件异步上传 服务器接收文件重复
- golang写服务端程序,作为文件上传与下载的服务器。配合HTML5以网页作为用户页面
- js html5 上传文件、多文件,服务器 端php
- html5上传文件提交服务器前的一些前端验证。
- Android与与服务器交换数据、上传、下载、读取文件
- asp.net mvc中读取input file上传的txt文件内容,但不需要把文件保存到服务器上
- 以Base64字符串形式上传文件——在web浏览器端使用原生Javascript及Ajax读取本地文件并发送请求到服务器
- 将TXT文件上传的服务器上并将读取内容绑定到DataTable进行验证
- HTML5 文件域+FileReader 分段读取文件(五)
- 上传excel文件存到服务器并且读取sheet
- HTML5 文件域+FileReader 分段读取文件(四)
- winForm读取本地文件并且上传到服务器(非FTP)
- js读取并解析excel文件,之后上传json到服务器
- Myeclipse中文件已经上传到服务器目录下,文件也没有被占用,但是页面中无法读取和使用问题的解决方法
- HTML5的FileAPI实现文件的读取及超大文件的上传