kissmeforever
kissmeforever
2009-08-20 09:56

如何在servlet中实现通过超链接下载

已采纳

我知道可以在HTML的页面上通过:
[code="java"][/code]
后台框架
[code="java"][/code]
来实现这个avi文件的下载。
<注:upfile为我webRoot目录下的资源文件夹>

那么怎么才能把这个改为在servlet中实现呢?
即:通过点击表单按钮:
[code="java"][/code]

[code="java"][/code]
然后如何在servlet中实现直接跳转到该链接实现下载?因为我不想用流下载,所以想直接在servlet中跳转。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • satanest satanest 12年前

    [code="java"]
    request.getRequestDispatcher("\upfile\10_后台框架.avi").forward(request,response);

    [/code]

    点赞 评论 复制链接分享
  • cpych cpych 12年前

    String headName = "A.txt";//文件名
    String fileUrl = "F:/company/heat energy/temp/A.txt";//文件路径
    if (headName.endsWith(".jpg") || (headName.endsWith(".gif"))) {
    } else if (headName.endsWith(".txt")) {
    response.setContentType("text;charset=GB2312");
    response.setHeader("Content-disposition", "attachment; filename="
    + headName);
    } else {
    response.setContentType("application/doc;charset=GB2312");
    response.setHeader("Content-disposition", "attachment; filename="
    + headName);
    }

        String fileURL = fileUrl;
        if (fileURL == null)
            return;
    
        try {
            File file = new File(fileUrl);
            FileInputStream bis = new FileInputStream(file);
            OutputStream bos = response.getOutputStream();
    
            byte[] buff = new byte[1024];
            int readCount = 0;
            int i = 0;
            readCount = bis.read(buff);
            while (readCount != -1) {
                bos.write(buff, 0, readCount);
                readCount = bis.read(buff);
            }
            if (bis != null)
                bis.close();
            if (bos != null)
                bos.close();
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    点赞 评论 复制链接分享
  • wanghaolovezlq wanghaolovezlq 12年前

    那你就直接用request的跳转到”10_后台框架.avi“相对web根目录所在的位置看看

    点赞 评论 复制链接分享

相关推荐