好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java实现文件点击没反应的方法

jsp页面链接, 点击 访问action用io流去下载服务器上的文件,问题是任凭怎么点击都 没反应 ,日志也不报错。

前台ajax代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

ext.ajax.request({

url : '/yjy/training/trainingtimeaction.do?method=downloadattchbyid' ,

params : {

timeid : timeids

},

success : function(response,options){

var result = ext.util.json.decode(response.responsetext);

ext.msg.alert( "下载成功" );

},

failure :function(response,options){

var result = ext.util.json.decode(response.responsetext);

ext.msg.alert( "下载失败" +result.message);

}

});

后台action代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

string timeid = request.getparameter( "timeid" );

       string sql = "select doc_name from cper.ehrtrain_item_document where item_id = ?" ;

       dbhelper dbhelper = new dbhelper();

       object[] params = new object[]{timeid};

       string filename = (string)dbhelper.runsqlscalar(sql, params);

       string filepath = serverpathutil.getpathroot()+ "web-inf/cache/train_item_file/train_item_file_" +timeid+ "/" +filename;

       file file = new file(filepath);

       if (!file.exists()){

         logger.debug( "文件不存在" );

         throw new ioexception( "the file not exists" );

       }

       response.setcontentlength(( int ) file.length());

       outputstream o = response.getoutputstream();

       byte b[] = new byte [ 5000 ];

       //response.setcontenttype("application/x-msdownload");

       response.setcontenttype( "application/vnd.ms-excel" );

       response.setcontentlength(( int )file.length());

       response.setheader( "content-disposition" , "attachment; filename=" +filename);

       fileinputstream in = new fileinputstream(file);

       int n;

       while ((n = in.read(b)) != - 1 ) {

         o.write(b, 0 , n);

       }

       in.close();

     } catch (exception e){

       e.printstacktrace();

     }

解决方法:文件的下载,在前台请求的时候,只能是form表单请求,或者用window.open的方式,最后我采用了window.open的方式

?

1

window.open( '/yjy/training/trainingtimeaction.do?method=downloadattchbyid&timeid=' + timeids);

注:采用这种方式页面会弹出一个空白窗口,下载之后窗口自动关闭,如果不想显示这个窗口,使用form提交的方式

总结

以上所述是小编给大家介绍的java实现文件点击没反应的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

原文链接:https://www.cnblogs.com/thouthout/archive/2018/07/25/9366048.html

查看更多关于Java实现文件点击没反应的方法的详细内容...

  阅读:46次