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. UVALive 6472 Powers of Pascal

    标题手段: 他给了一个无限Pascal阵,定义了powers,然后询问power为P的pascal矩阵里面的第R行C列的元素是多少. 最開始读错题意了...然后 就成了一个神得不得了的题了.后来请教的 ...

  2. 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注

    原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?&quo ...

  3. Java设计模式(八)观察者模式 迭代器模式

    (十五)观察者模式 观察者模式,定义对象间一对多关系,一个对象状态发生改变,全部依赖于它的对象都收到通知而且自己主动更新,观察者与被观察者分开.比如邮件订阅.RSS订阅,假设有更新就会邮件通知你. i ...

  4. HDU 5001 概率DP || 记忆化搜索

    2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP  測 ...

  5. c语言下多线程

    原文:c语言下多线程 [问题]创建了10个线程,10个线程公用一个线程体,创建如下: int t1=0,t2=1,t3=2,t4=3,t5=4,t6=5,t7=6,t8=7,t9=8,t10=9; i ...

  6. DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.ToDateTime的解决:

    原文:DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.ToDateTime的解决: DateTime.ToString("dd ...

  7. Java设计模式偷跑系列(六)Singleton模式的建模与实现

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39784403 单例模式(Singleton):是一种经常使用的设计模式. 在Java应用中 ...

  8. Microsoft .NET Pet Shop 简介

    最初研究 .NET Pet Shop 的目的是用 Microsoft .NET 实现 Sun 主要的 J2EE 蓝图应用程序 Sun Java Pet Store 同样的应用程序功能. 根据用 .NE ...

  9. C注意,使用的语言字符串

    转载请注明出处! 在C语言没有具体的字符串数据类型,字符串的字符串常量和字符数组的形式. 实际上该字符串是零个或更多字符的字符串.并在整个位模式0NUL字节结束.因此,字符串所包括的字符内部不能出现N ...

  10. viewstate cookie和session原理回顾

    --个人理解会存在些错误仅供参考!!! ----浏览器保持会话状态原理 用户发送一次请求,服务器端会检索报文中是否存在sessionid不存在,就分配一个写到cookie当中,存在浏览器的缓存中,当再 ...