起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: bex5yq

[结贴] 下载项目下的附件

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-7 17:16:32 | 显示全部楼层
那你应该把压缩包放到指定目录,下载的路径设置指定的目录
这不是x5控制的,标准的java就是这样
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

262

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-8-8 09:47:47 | 显示全部楼层
本帖最后由 bex5yq 于 2017-8-8 10:19 编辑
jishuang 发表于 2017-8-7 17:16
那你应该把压缩包放到指定目录,下载的路径设置指定的目录
这不是x5控制的,标准的java就是这样
...

1、请问,若我想用超链接来实现下载,该怎么做呢?
    A、 我现在做的是点击【下载】按钮触发函数然后ajax请求action,然后返回了一个压缩包的路径
    B、 我想实现的效果是:点击下载的时候 将返回的路径呈现在一个小窗口上,点击这个路径实现下载

2、如果不是超链接,用servlet实现下载,在我以上【A】的基础上该怎么实现呢?

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-8 11:24:54 | 显示全部楼层
1.到网上查找标准的web应用中怎么实现的
2.servlet实现下载就是web应用标准的,到网上查找
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

262

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-8-8 11:36:09 | 显示全部楼层
jishuang 发表于 2017-8-8 11:24
1.到网上查找标准的web应用中怎么实现的
2.servlet实现下载就是web应用标准的,到网上查找 ...

x5平台的servlet是写在ui下的,.w 怎么携带着参数跳转到servlet
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-8 13:38:05 | 显示全部楼层
UI2下.j文件就是servlet

调用.j参考http://bbs.wex5.com/forum.php?mo ... E8%B0%83%E7%94%A8.j

.j.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

262

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-8-8 16:41:08 | 显示全部楼层
jishuang 发表于 2017-8-8 13:38
UI2下.j文件就是servlet

调用.j参考http://bbs.wex5.com/forum.php?mod=viewthread&tid=51290&highlight=% ...

请问 这个json格式的param  在.j 中怎么获取到
我用request.getparamter();显示空指针
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-8 17:23:11 | 显示全部楼层
简单的可以直接url上传参,然后获取url上的参数
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

262

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-8-9 11:51:16 | 显示全部楼层
jishuang 发表于 2017-8-8 17:23
简单的可以直接url上传参,然后获取url上的参数

你好 按照你的方法 确实可以访问到servlet了,我自己写的这个servlet是实现下载的,调试过没有问题。后台也不报错,但是就是没有结果。浏览器端没有实现下载,这跟平台有什么关系么?自定义的下载还须要依赖平台的什么操作么?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-9 14:16:06 | 显示全部楼层
在html页面中测试看看运行是否正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

262

帖子

434

积分

中级会员

Rank: 3Rank: 3

积分
434
QQ
 楼主| 发表于 2017-8-10 14:34:45 | 显示全部楼层
jishuang 发表于 2017-8-9 14:16
在html页面中测试看看运行是否正确


InputStream bis = null;
  BufferedOutputStream bos = null;
  String zipPath =request.getParameter("filepath");
  System.out.println("---------"+zipPath);
  //执行下载
  response.setContentType("application/zip");
  response.setCharacterEncoding("UTF-8");
  //获取文件名
  String tempFileNameSplit = zipPath.substring(zipPath.lastIndexOf("\\")+1, zipPath.length());
  System.out.println(tempFileNameSplit);
  
  //System.out.println(extend);
  //将文件放在输入流中
  bis = new BufferedInputStream(new FileInputStream(zipPath));
  
  response.setHeader("Content-Disposition", "attachment; filename="+tempFileNameSplit);
  response.setHeader("Content-Length", String.valueOf(bis.available()));
  
  //创建输出流
  bos = new BufferedOutputStream(response.getOutputStream());
  //创建缓冲区
  byte[] buff = new byte[2048];
  int bytesRead;
  //循环读取输入流中的内容到缓冲区
  while ((bytesRead= bis.read(buff))>0) {
   //输出流输出到浏览器,实现下载
   bos.write(buff, 0, bytesRead);
  }
  bos.flush();
  bos.close();
  bis.close();
  try {
   if (bis != null) {
    bis.close();
   }
   if (bos != null) {
    bos.close();
   }
  } catch (IOException e) {
   e.printStackTrace();
   //message+="下载压缩包时关闭输入输出流发生异常\r\n";
  }
}

//.w文件的代码
var callback = function(xhr, ts){
                         if(justep.Request.isSuccess(xhr))
                         {
                          console.info(xhr);
                         }
                         else {alert('error');};
                        };
                        debugger;
                        justep.Request.sendHttpRequest(
        justep.Request.setBizParams(justep.Request.convertURL('/UI/LandRenovation/ProjectList/process/projet/dsrc/download.j?filepath='+zippath)),
        null,
        "multipart/form-data",//"application/x-www-form-urlencode",
        null,
        null,
        null,
        null,
        true,
        callback);//访问servlet
                   }
                       }//if(data.state)
                      }
                     });//sendBizRequest2
                     }catch (e){
                     // TODO: handle exception
                     }


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-22 21:06 , Processed in 0.134100 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表