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浏览器 ...
随机推荐
- codeforces567E. President and Roads
题目大意:总统要回家,会经过一些街道,每条街道都是单向的并且拥有权值.现在,为了让总统更好的回家,要对每一条街道进行操作:1)如果该街道一定在最短路上,则输出“YES”.2)如果该街道修理过后,该边所 ...
- Oracle归档日志定时删除任务
1.在Oracle账号下,创建归档日志删除文件del_arch.sh 文件位置:/home/oracle/crontabOra,内容如下: #!/bin/bash LOG_DIR=/home/orac ...
- jdbc(1)(一)
1.连接数据库,准备mysql连接jar包导入项目: Class.forName("com.mysql.jdbc.Driver"); //建立连接是比较耗时,耗资源的,实际开发中多 ...
- poj 2516Minimum Cost
http://poj.org/problem?id=2516 #include<cstdio> #include<cstring> #include<algorithm& ...
- 启动Activity但不显示其界面
最近在工作中做了一个很简单的任务,制作一个apk,点击该app链接到某一个网站. 代码很简单,只有如寥寥几行: (browser.java) package com.test.browser; ...
- Hadoop FileInputFormat实现原理及源码分析
FileInputFormat(org.apache.hadoop.mapreduce.lib.input.FileInputFormat)是专门针对文件类型的数据源而设计的,也是一个抽象类,它提供两 ...
- HDOJ(HDU) 2088 Box of Bricks(平均值)
Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...
- WebLogic简单的备份和恢复
万一发生故障,为了迁移或者恢复WebLogic域,应定期地备份管理服务器机器上的整个域目录树.这样,只需恢复域目录并重启管理服务器就可以使服务器从硬件或者系统故障中恢复.在WebLogic生产域中,需 ...
- sqlserver查看索引使用情况以及建立丢失的索引
--查看表的索引使用情况SELECT TOP 1000o.name AS 表名, i.name AS 索引名, i.index_id AS 索引id, dm_ius.user_seeks AS 搜索次 ...
- WPF - 这是一堆代码片段的集合
1. Image的Source设定,引用的图片文件在其他的dll中.图片的Build action : Resource 如果是直接写: Source="/MyProject.Resourc ...