ajax+ashx 完美实现input file上传文件
1、input file 样式不能满足需求
<input type="file" value="浏览" />
IE8效果图:
Firefox效果图:
Chrome效果图: 
2、input file上传按钮美化
css:
.file{
position: relative;
background-color: #b32b1b;
border: 1px solid #ddd;
width: 68px;
height: 25px;
display: inline-block;
text-decoration: none;
text-indent:;
line-height: 25px;
font-size: 14px;
color: #fff;
margin: 0 auto;
cursor: pointer;
text-align: center;
border: none;
border-radius: 3px;
}
.file input{
position: absolute;
top:;
left: -2px;
opacity:;
width: 10px;
}
html:
<div>
<span>选择文件:</span><input id="txt_filePath" type="text" readonly="readonly"/>
<a class="file"><input id="btnfile" name="btnfile" type="file"/>浏览</a>
</div>
美化后的效果图:

3、ajax+ashx实现上传功能
引入文件:jquery-1.11.3.js ajaxfileupload.js
js:
$(function () {
//选择文件
$(".file").on("change", "input[type='file']", function () {
var filePath = $(this).val();
//设置上传文件类型
if (filePath.indexOf("xls") != -1 || filePath.indexOf("xlsx") != -1) {
//上传文件
$.ajaxFileUpload({
url: 'ASHX/FileHandler.ashx',
secureuri: false,
fileElementId: 'btnfile',
dataType: 'json',
success: function (data, status) {
//获取上传文件路径
$("#txt_filePath").val(data.filenewname);
alert("文件上传成功!");
},
error: function (data, status, e) {
alert(e);
}
});
} else {
alert("请选择正确的文件格式!");
//清空上传路径
$("#txt_filePath").val("");
return false;
}
});
})
FileHandler.ashx
public class FileHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string msg = string.Empty;
string error = string.Empty;
string result = string.Empty;
string filePath = string.Empty;
string fileNewName = string.Empty;
//这里只能用<input type="file" />才能有效果,因为服务器控件是HttpInputFile类型
HttpFileCollection files = context.Request.Files;
if (files.Count > )
{
//设置文件名
fileNewName = DateTime.Now.ToString("yyyyMMddHHmmssff") + "_" + System.IO.Path.GetFileName(files[].FileName);
//保存文件
files[].SaveAs(context.Server.MapPath("~/Upload/"+fileNewName));
msg = "文件上传成功!";
result = "{msg:'" + msg + "',filenewname:'" + fileNewName + "'}";
}
else
{
error = "文件上传失败!";
result = "{ error:'" + error + "'}";
}
context.Response.Write(result);
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
}
实现一个简单上传功能
ajax+ashx 完美实现input file上传文件的更多相关文章
- input file 上传文件
面试的时候遇到一个问题,要求手写的方式上传文件. 本来觉得很简单,但是结果怎么也成功不了. 前台: <form ID="form1" action="AcceptF ...
- 在HTML5的 input:file 上传文件类型控制 遇到的问题
1.input:file 属性的介绍 先瞅代码吧 <form> <input type="file" name="pic" accept=& ...
- input file上传文件
如何使用input[type='file']来上传文件呢? html: //angular<input type="file" (change)="fileChan ...
- 巧妙利用label标签实现input file上传文件自定义样式
提到上传文件,一般会想到用input file属性来实现,简单便捷,一行代码即可 但input file原生提供的默认样式大多情况下都不符合需求,且在不同浏览器上呈现的样式也不尽相同 我们往 ...
- 使用input file上传文件中onChange事件只触发一次问题
每次上传文件的时候,都会将当前的文件路径保存至$event.target.value中,当第二次选择文件时,由于两次$event.target.value相同,所以不会触发change事件. 解决方案 ...
- input file上传文件扩展名限制
方法一(不推荐使用):用jS获获取扩展名进行验证: <script type="text/javascript" charset="utf-8"> ...
- angular input file 上传文件
<body > <div ng-controller="fileCtrl"> <form ng-submit="submit(obj)&qu ...
- input file上传文件弹出框的默认格式设置
我们使用html的input 标签type="flie"时,如何设置默认可选的文件格式 <input id="doc_file" type="f ...
- input:file上传文件类型(记录)
imput 属性有以下几种: 1.type:input类型这就不多说了2.accept:表示可以选择的文件类型,多个类型用英文逗号分开,常用的类型见下表. <input id="fil ...
随机推荐
- iOS常用动画-b
CoreAnimationEffect.h // CoreAnimationEffect // // Created by VincentXue on 13-1-19. // Copyright ...
- HID燈是什么及其工作原理
HID為HighIntensityDischarge的縮寫,即高壓氣體放電燈,它發光的原理是將12V電壓增壓至23000V的超高電壓,激穿填充在石英管的氙氣,使它發光.然后再將電壓轉成85V左右,穩定 ...
- SQLite for xamarin
原文地址:http://www.codeproject.com/Articles/1097179/SQLite-with-Xamarin-Forms-Step-by-Step-guide SQLite ...
- POJ1860 Currency Exchange(最短路)
题目链接. 分析: 以前没做出来,今天看了一遍题竟然直接A了.出乎意料. 大意是这样,给定不同的金币的编号,以及他们之间的汇率.手续费,求有没有可能通过不断转换而盈利. 直接用Bellman-ford ...
- BZOJ 1028 [JSOI2007]麻将
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1270 Solved: 576[Submit][Status][ ...
- -_-#【userAgent】极速模式与非极速模式存在差异
UC浏览器 Android 极速模式 UC浏览器 Android 非极速模式
- N - Marriage Match II - HDU 3081(最大流)
题目大意:有一些男孩和女孩玩一个游戏,每个女孩都可以挑一个男孩来进行这个游戏(所有人都要参加),女孩只会挑选她喜欢的男孩,并且她们认为她们朋友喜欢的男孩她们也是喜欢的(朋友的男朋友也是我的男朋友??? ...
- 建议别买三星Gear:半电脑产品 设计糟糕
不久之前,三星刚刚发布了智能腕表Galaxy Gear,据<纽约时报>周三报道,尽管三星电子的智能手表Galax Gear集各种酷炫新功能于一身,但对消费者来说,却是个差劲的选择. < ...
- GC与显式内存管理
C++复兴的话题至今已被鼓吹两年有余,Herb Sutter和Bjarne Stroustrup等大牛们也为C++带来了大步伐的革新.然而,从这两年的效果而言,C++的复兴并没有发生.一方面随着世界经 ...
- 点击按钮弹出div,留用
<input type="button" onclick="document.getElementById('div').style.display=(docume ...