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. HDU 4006 The kth great number AVL解

    提供动态更新数据.第实时QK大量的值什么? 使用AVL统计数据结构做,比较先进的数据结构的内容. 不知道给出的数据为准值是否有反复.下面的程序是因为我能够处理重复数据出现的情况下,. 了repeat的 ...

  2. .NET Framework 各版本区别

    .NET Framework 各版本区别 .NET Framework 1.1 自1.0版本以来的改进:自带了对mobile asp .net控件的支持.这在1.0版本是以附加功能方式实现的,现在已经 ...

  3. IOS中 类扩展 xib

    一.类扩展(class extension,匿名分类) .格式 @interface 类名 () { // 成员变量... } // 方法声明... @end .作用 > 写在.m文件中 > ...

  4. 关于jquery mobile 页面闪烁与抖动问题

    1.闪烁:在用a链接跳转到另一个页面的时候,页面总会抖动几下,其实就是页面切换时的transition特效,jqm貌似默认了这项. 解决方案:在a链接添加transition:none; 属性就可以啦 ...

  5. 对于GetBuffer() 与 ReleaseBuffer() 的一些分析

    先 转载一段别人的文章 CString类的这几个函数, 一直在用, 但总感觉理解的不够透彻, 不时还实用错的现象. 今天抽时间和Nico一起分析了一下, 算是拨开了云雾: GetBuffer和Rele ...

  6. c# 委托详解

    1.委托声明 2.委托入门实例 namespace ConsoleApplication1 { public delegate void methodDelegate(string str); cla ...

  7. Linux下访问文件的基本模式

    源址:http://blogread.cn/it/article/6523?f=wb 访问文件的操作主要是指读文件和写文件,下文简单说明内核中几种常见的访问文件的方式. 普通模式 读写系统调用的默认方 ...

  8. vim的复制粘贴小结

    vim帮助文档里与粘贴板有关的内容如下: vim有12个粘贴板,分别是0.1.2.….9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用 ...

  9. /bin/bash^M: bad interpreter: No such file or directory

    <今天遇到的问题,  网上有非常多类似的文章,  个人记录下来,  加深记忆,  已经明确的就绕路吧.> 运行一个脚本full_build.sh 时, 一直是提示我: -bash: ./f ...

  10. Cocos2d-x在Android在竖屏切换

    在Cocos2d-x在,屏幕类型的默认设置是横屏,当我们需要切换到肖像,能够在项目目录打开proj.android目录.找到AndroidManifest.xml文件,直接打开,然后就可以看到里面:s ...