首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS实现上载文件

2013-01-22 
JS实现下载文件?用a href 文件地址 下载/a来做,系统总是默认打开该文件,而不是弹出下载框。我也尝

JS实现下载文件?
用<a href = "文件地址" >下载</a>来做,系统总是默认打开该文件,而不是弹出下载框。
我也尝试在<a>标签加onclick事件,在事件中写window.location.href="文件地址"或者window.open("文件地址") 系统还是默认打开该文件,而不是弹出下载框。(注:下载文件格式不固定(.excel .word .pdf .ppt.............很多))
请各位大侠指点指点!有测试通过代码最好!

[解决办法]
这个和js以及html无关。总是打开是因为你安装了打开这个东西所需的软件。这个应该是windows设置中的事情。具体怎么改我也不清楚。
[解决办法]
js做不了。就算你设置浏览器,总不能别人的浏览器你也设置吧。
这是程序完成的,如asp的方法是这样。
<a href="down.asp?file=/xx/xx.doc" target="_blank">下载doc文档</a>
down.asp代码:

  <%
  Dim Scs,ture_url,filename,exe_name,Range,file_name,file_url
file_url=Request.QueryString("file")
ture_url=server.MapPath(file_url)
file_name=Mid(ture_url,instrRev(ture_url,"")+1)
exe_name=Mid(file_name,instrRev(file_name,".")+1)'后缀名
If InStr("asp,pnp,aspx",LCase(exe_name))=0 Then '禁止下载一些程序文件
filename=Mid(file_name,1,instrRev(file_name,".")-1)'文件名
Set Scs=CreateObject("Adodb.Stream")
Scs.Mode=3 
Scs.Type=1 
Scs.Open 
Scs.LoadFromFile(ture_url)
Response.ContentType="application/octet-stream"
Response.AddHeader "Content-Disposition:","Attachment;filename="&Server.UrlEncode(filename)&"."&exe_name
Response.BinaryWrite(Scs.Read)
Else
Response.write "非法下载文件"
End If
  %>

[解决办法]
Js做不下载文件的吧
[解决办法]
参考

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page  contentType = " text/html; charset=utf-8" %> 
<%@ taglib uri = "/struts-tags"  prefix = "s" %>
<%@page import="java.util.*"%>
 <%@page import="java.io.*"%>
 <%@page import="java.net.*"%>
 <%
     String filename = "";
     String nofile ="";
     if(request.getParameter("nofile")!=null){
nofile = URLDecoder.decode(request.getParameter("nofile"),"UTF-8");
     }
     if (request.getParameter("file") != null) {
         filename = request.getParameter("file");
     }
     filename=URLDecoder.decode(filename,"UTF-8");
    String disp_file = request.getParameter("filename")!=null?
    URLEncoder.encode(filename.substring(filename.lastIndexOf("/")+1),"UTF-8"):URLEncoder.encode(request.getParameter("filename"),"UTF-8");
    System.out.println("disp_file---="+disp_file);
    filename=request.getRealPath("/")+filename;
    System.out.println("filename="+filename);
    File file = new File(filename);
    if(file.exists()){
    System.out.println("==filename="+filename);
     response.setContentType("application/msword");
     response.setHeader("content-disposition","attachment; filename="+disp_file);


     BufferedInputStream bis = null;
     BufferedOutputStream bos = null;
     try {
         bis = new BufferedInputStream(new FileInputStream(filename));
         bos = new BufferedOutputStream(response.getOutputStream());
         byte[] buff = new byte[2048];
         int bytesread;
int i=0;
         while(-1 != (bytesread = bis.read(buff, 0, buff.length))) {
         bos.write(buff,0,bytesread);
         }
         bos.flush();
        out.clear();
  out=pageContext.pushBody();
//bos = pageContext.pushBody();
     } catch(Exception e) {
     e.printStackTrace();
     } finally {
         if (bis != null)
             bis.close();
         if (bos != null)
             bos.close();
     }
    }else{
        if(!nofile.equals("")){
     response.getWriter().write("<script>alert('"+nofile+"')</script>");
     response.getWriter().write("<script>window.close();</script>");
     }else{
     response.getWriter().write("<script>alert('下载文件不存在')</script>");
     response.getWriter().write("<script>window.close();</script>");
     }
     }
     %>
<html>
<HEAD>

</HEAD>
<body>
<script>
//window.close();
</script>
</body>
</html>

热点排行