1、
<a href="#" onClick="download()">下载文件</a> 
<iframe id="downloadURL" height="0" width="0" src=""></iframe> 
<script language="javascript"> 
function download(){ document.getElementById("downloadURL").src="test.rmvb"; } 
</script> 
2、
function DownURL(strRemoteURL,strLocalURL) 

try 

  var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP"); 
   xmlHTTP.open("Get",strRemoteURL,false); 
   xmlHTTP.send(); 
  var adodbStream=new ActiveXObject("ADODB.Stream"); 
   adodbStream.Type=1;//1=adTypeBinary 
   adodbStream.Open(); 
   adodbStream.write(xmlHTTP.responseBody); 
   adodbStream.SaveToFile(strLocalURL,2); 
   adodbStream.Close(); 
   adodbStream=null; 
   xmlHTTP=null;

catch(e) 

   window.confirm("下载URL出错!"); 

//window.confirm("下载完成."); 
}
//检验连接是否有效
function getXML(URL)
{
var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
xmlhttp.Open("GET",URL, false);
try{
  xmlhttp.Send();
}catch(e){
}finally
{
 var result = xmlhttp.responseText;
 if(result){
  if(xmlhttp.Status==200){
return(true);
  }else{
return(false);
  }
 }else{
  return(false);
 }
}
}
3、
jsp页面1:
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<HTML>
<HEAD>
</HEAD>
<BODY>
<a href = "download1.jsp?filepath=d:\\&filename=1a.txt" >downloadtest1</a>
</BODY>
</HTML>
jsp页面2:
<% 
String filename = request.getParameter("filename");//"1a.txt"; 
String filepath = request.getParameter("filepath");//"d:\\";
int i = 0;
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename = "+filename); 
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath+filename);
while((i= fileInputStream.read()) != -1){
out.write(i);
}
%>
4、
function svcode(obj) { 
var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300'); 
winname.document.open('text/html', 'replace'); 
winname.document.writeln(obj.value); 
winname.document.execCommand('saveas','','code.txt'); 
winname.close(); 
}
5、
<script language="javascript" type="text/javascript">
//js自动下载文件到本地
var xh;
function getXML(geturl)
{
    //alert("ll");
    xh = new ActiveXObject("Microsoft.XMLHTTP");
    xh.onreadystatechange = getReady;
    xh.open("GET",geturl,true);                    
    xh.send();                         
}

function getReady()
{
    alert(xh.readyState);
    if(xh.readyState==4)
    {
        if(xh.status==200){
            saveFile("d:\mm.exe");
            return true;
        }
        else
        {return false;}
    }
    else
        return false;
}

function saveFile(tofile)
{
    var objStream;
    var imgs;
    imgs = xh.responseBody; 
    objStream = new ActiveXObject("ADODB.Stream");
    objStream.Type = 1;
    objStream.open();
    objStream.write(imgs);
    objStream.SaveToFile(tofile)
}
getXML("http://192.168.22.206/mm.exe"); 
//js自动下载文件到本地结束
</script>

6、
<html>
<head>
<script>
var _curfile= null;
function downfile(file)
{
_curfile = file;
document.getElementById("body").disabled = true;
document.getElementById("div1").style.display="block";
}
function OK()
{
document.getElementById("div1").style.display="none";
document.getElementById("body").disabled = false;
window.open(_curfile);
_curfile = null;
}
function NotOK()
{
document.getElementById("div1").style.display="none";
document.getElementById("body").disabled = false;
_curfile = null;
}
</script>
</head>
<body>
<div id="div1" style="display:none;position:absolute;left:100px;top:100px;border:solid 1px red;">
  您确认要下载此文件吗? <br/>
<input type="button" value="同意" onclick="OK()" />
<input type="button" value="不周意" onclick="NotOK()" />
</div>
<div id="body">
<a href="javascript:void(0)" onclick="return downfile('C:\\Users\\limin_he\\Desktop\\card_error.rar');">IT知道网www.itwis.com下载测试 </a>
</div >
</body>
</html>
7、利用jquery插件jDownload
http://jdownloadplugin.com
8、
function downloadFile(sn_id){
alert('下载'+sn_id);
var sendurl ='"+req.getContextPath()+"/file.do?operate=downLoadFromFtp&sn='+sn_id;
$.ajax({  
url:sendurl,  
type:'GET',  
error:function(data){  
alert('失败');  
}, ");
success:function(data){
alert('下载成功123');  
$('#attlist').html(data);  
// slideDialog($('#fileRetMsg').val());  
data.execCommand('SaveAs')  
}  
});   
}

上传邮件

1、JS判断上传文件类型
<SCRIPT LANGUAGE="JavaScript">
var extArray = new Array(".gif", ".jpg", ".png");
function LimitAttach(form, file) {
var allowSubmit = false;
if (!file) {
return;
}
while (file.indexOf("\\") != -1){
file = file.slice(file.indexOf("\\") + 1);
}
varext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) {
allowSubmit = true;
break; 
}
}
if (allowSubmit) {
form.submit();
}else{
alert("只能上传:  " 
+ (extArray.join("  ")) + "\n请重新选择文件"
+ "再上传.");
}
}
</script>
2、使用 JavaScript File API 实现文件上传
http://www.ibm.com/developerworks/cn/web/1101_hanbf_fileupload/index.html?ca=drs-
3、js 判断文件大小
function getFileSize(filePath)
{
var fso,f;
fso=new activexobject("scripting.filesystemobject");
f=fso.getfile(filePath);
if(f.size>1024*4){
alert(f.size+" bytes");
}
}
注:此种方式不太安全,只有在IE中有效且需要调整IE选项卡中的安全级别
Tools -> Internet Options -> Security -> Custom Level (Button) - >
4、
上传原理:
客户端和服务端通信最基本的用form提交刷新页面,提交数据包括文本和文件的二进制数据。而ajax提交的数据只能是文本形式。
 
一、最基本的用form表单的file,提交到服务端刷新
二、用jQuery的form插件file,实现无刷新提交表单
三、用jQuery的ajaxfileupload插件实现form file无刷新提交。原理是写一个form和一个iframe,form的target指向iframe即可,
    form提交后刷新iframe,而不刷新整个页面
四、用dwr(3.0版本以上)实现无刷新提交form file.
五、其他的就是用FileReader或者IE 的activeXObject等。但是这些方式不是有兼容问题就是安全问题。
http://www.cnitblog.com/guopingleee/archive/2009/01/16/53822.html
http://blog.csdn.net/wbw1985/archive/2010/11/25/6035326.aspx
http://hi.baidu.com/gaopenghigh/blog/item/a9e907d05a6beac4572c848c.html

原文地址:http://baiyangzhuhong.blog.163.com/blog/static/51744953201151211739735/

js 上传下载(留着备用)的更多相关文章

  1. 用Canvas+Javascript FileAPI 实现一个跨平台的图片剪切、滤镜处理、上传下载工具

    直接上代码,其中上传功能需要自己配置允许跨域的文件服务器地址~ 或者将html文件贴到您的站点下同源上传也OK. 支持: 不同尺寸图片获取. 原图缩小放大. 原图移动. 选择框大小改变. 下载选中的区 ...

  2. Selenium2学习-039-WebUI自动化实战实例-文件上传下载

    通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...

  3. servlet上传下载(任何格式的都可以)

    jar不能低于此版本,JDK1.6以上,否则户报错 <dependency> <groupId>commons-fileupload</groupId> <a ...

  4. SpringMVC文件上传下载

    在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...

  5. 使用ajaxfileupload.js上传文件

    一直以来上传文件都是使用form表单上传文件,也看到过有人使用js上传文件,不过看起来蛮简单的也就没有怎么去理会.今天突然要使用这种方式上传文件,期间还遇到点问题.因此就记录下来,方便以后遇到这样的问 ...

  6. WEB文件上传下载功能

    WEB文件上传下载在日常工作中经常用到的功能 这里用到JS库 http://files.cnblogs.com/meilibao/ajaxupload.3.5.js 上传代码段(HTML) <% ...

  7. 2013第38周日Java文件上传下载收集思考

    2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...

  8. WebApi2 文件图片上传下载

    Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方 ...

  9. .Net Core 图片文件上传下载

    当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...

随机推荐

  1. Facebook HHVM 和 Hack 手册 --- 2. HHVM能做什么

    HHWM简介: HHWM(HipHop VM) 是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点. ...

  2. CRUD功能的JqGrid表格

    CRUD功能的JqGrid表格 之前的项目也曾用过JgGrid对它的基本功能也是略有了解,网上有个国外的开源的项目,但是不适合个人的风格,所以花了3天空余的时间封装了下JqGrid,也算是参加开发工作 ...

  3. PDF.NET SOD Ver 5.1完全开源

    PDF.NET SOD Ver 5.1完全开源 前言: 自从我2014年下半年到现在的某电商公司工作后,工作太忙,一直没有写过一篇博客,甚至连14年股票市场的牛市都错过了,现在马上要过年了,而今天又是 ...

  4. 小议 js 下字符串比较大小

    原文:小议 js 下字符串比较大小 之前群里有人问如何比较两个时间大小,他的时间格式是 2014-08-08 而不是 2014-8-8.所以我给的方法是 直接比较,如: var a = "2 ...

  5. Unity3d在线游戏Socket通讯

    网络游戏是一个人的互动娱乐软件应用.因为它是交互式,当然,需要了解对方的通信.这需要通信Socket:我们今天要实现的主角即套接字.Socket的英文原义是"孔"或"插座 ...

  6. Sql Server 自定义数据类型

    SQLServer 提供了 25 种基本数据类型: ·Binary [(n)]  二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨 ...

  7. leetcode第24题--Reverse Nodes in k-Group

    problem: Given a linked list, reverse the nodes of a linked list k at a time and return its modified ...

  8. SSIS中Sql Task 获取系统变量

    原文:SSIS中Sql Task 获取系统变量 执行 SQL 任务使用不同的连接类型时,SQL 命令的语法使用不同的参数标记.例如,ADO.NET 连接管理器类型要求 SQL 命令使用格式为 @var ...

  9. word-wrap同word-break的区别

    兼容 IE 和 FF 的换行 CSS 推荐样式 最好的方式是 以下是引用片段: word-wrap:break-word; overflow:hidden; 而不是 以下是引用片段: word-wra ...

  10. Smarty从配置文件读取的变量

    从配置文件读取的变量 配置文件中的变量需要通过用两个"#"或者是smarty的保留变量 $smarty.config.来调用(下节将讲到) 第二种语法在变量作为属性值并被引号括住的 ...