JavaScript 之 使用 XMLHttpRequest 上传文件
<div id="div1">
<input type="file" id="uploadfile" style="width: 100px; height: 25px;" />
<input id="b1" type="button" value="上传" style="display: inline-block; width: 40px; height: 25px;" />
</div>
js脚本:
https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html
http://dev.w3.org/2006/webapi/FileAPI/
window.onload = function () {
document.getElementById("uploadfile").addEventListener("change", function () {
//1、获取所选的文件 暂时只选一个
var filereader = new FileReader();
filereader.onloadend = function (event) {
console.log("a");
var filedata = event.target.result;
var request = new XMLHttpRequest();
request.open("POST", "Handler1.ashx", true);
var formdata = new FormData();
formdata.append(file.name, file);
request.send(formdata);
}
filereader.onloadstart = function (event) {
console.log("b");
}
var file = document.getElementById("uploadfile").files[0];
var fileblob = filereader.readAsArrayBuffer(file);
}, true);
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Data;
namespace WebApplication1
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler
{
public byte[] buffer = null;
public FileStream filestream = null;
public void ProcessRequest(HttpContext context)
{ int length = Convert.ToInt32(context.Request.Files[].InputStream.Length);
buffer = new byte[length]; //context.Request.InputStream.Read(buffer, 0, length);
context.Request.Files[].InputStream.Read(buffer, , length); string direcotry = System.Environment.CurrentDirectory;
direcotry = context.Request.Path;
direcotry = context.Request.MapPath("\\");
string filename = context.Request.Files[].FileName;//文件名
string hzm = filename.Substring(filename.LastIndexOf("."));//后缀名 filestream = new FileStream(direcotry + DateTime.Now.Ticks.ToString() + hzm, FileMode.Create);
filestream.Write(buffer, , buffer.Length);
filestream.Flush();
filestream.Close();
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
} public bool IsReusable
{
get
{
return false;
}
}
}
}
JavaScript 之 使用 XMLHttpRequest 上传文件的更多相关文章
- XMLHttpRequest上传文件实现进度条
话不多说,直接上代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- .net ajax式上传文件
今天在这里介绍一下ajax上传文件.其实也不算是真的使用xmlhttprequest上传,只是使用了iframe实现了无刷新上传而已,最多也只算 是仿ajax上传文件.然而网上关于使用xmlhttpr ...
- 【django】ajax,上传文件,图片预览
1.ajax 概述: AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...
- spring mvc + xmlHttpRequest2.0 实现无刷新上传文件,带进度条和剩余时间
1.springmvc支持文件上传,需要在spring-mvc.xml配置文件中加上下面的一段话: <!-- 支持上传文件 --> <bean id="multipartR ...
- 原生XMLHTTPResponse,jQuery-Ajax 上传文件;iframe上传图片&预览;图片验证码小案例
原生AJAX Ajax主要就是使用 [XmlHttpRequest]对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件) 1.Xml ...
- javascript实现限制上传文件的大小
目录 基本思路 示例 [一].基本思路 在FireFox.Chrome浏览器中可以根据document.getElementById(“id_file”).files[0].size 获取上传文件的大 ...
- atitit.javascript js 上传文件的本地预览
atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL 1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...
- Javascript 上传文件到Azure存储
对一些前端工程师来讲,使用javascript上传文件到Azure存储中可能是需要掌握的技能,希望这篇博客能给到帮助. 在开始前我们需要了解以下几点: 共享访问签名(Shared Access Sig ...
- [转]javascript实现限制上传文件的大小
本文转自:http://www.micmiu.com/lang/javascript/js-check-filesize/ 目录 基本思路 示例 [一].基本思路 在FireFox.Chrome浏览器 ...
随机推荐
- Glide制作圆形图片
上效果图: 第一步: AndroidStudio添加依赖库: compile 'com.github.bumptech.glide:glide:3.5.2' 第二步: <ImageView an ...
- log4j.propertise配置文件
# level : 是日志记录的优先级,分为OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL或者您定义的级别.Log4j建议只使用四个级别,优先级从高到低分别是ERROR.WAR ...
- 打印机PCL漏洞原理分析
0x01 漏洞概要 PCL代表打印机控制语言(Printer Control Language),由惠普公司开发,并被广泛使用的一种打印机协议.关于另一种页面描述语言,应该提一提由Adobe设计的Po ...
- HDU 5514 Frogs (容斥原理)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=5514 题意 : 有m个石子围成一圈, 有n只青蛙从跳石子, 都从0号石子开始, 每只能越过a[i] ...
- [Design Pattern] Proxy Pattern 简单案例
Proxy Pattern, 即代理模式,用一个类代表另一个类的功能,用于隐藏.解耦真正提供功能的类,属于结构类的设计模式. 下面是 代理模式的一个简单案例. Image 定义接口,RealImage ...
- Spark Streaming 入门指南
这篇博客帮你开始使用Apache Spark Streaming和HBase.Spark Streaming是核心Spark API的一个扩展,它能够处理连续数据流. Spark Streaming是 ...
- Linq 语法举例
1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; // ...
- 【建模】UML类关系分析
一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...
- Mac下phpstorm 浏览器出现 502 bad gateway 解决办法
问题: 在网上搜了好久,都没有合适的解决办法,于是决定分享下自己鼓捣好久解决了的办法,希望能帮到大家. 出现上述情况,一般在phpstorm里都会出现这个提示 我们只需要点击蓝色的进去,或者点phps ...
- ListView的优化
1. ListView须要设置adapter,它的item是通过adapter的方法getView(int position, View convertView, ViewGroup parent)获 ...