我用Servlet做的服务器,用Delphi做的客户端,在Servlet端执行写Excel的操作(用jxl),希望能将Excel文件保存到客户端;
当把Servlet导出的war文件放在我机子上的Tomcat上时,就可以正常导出;但把这个war文件放到服务器上时,不报错,但是没有导出的Excel文件。我在网上查了下,可能是路径的问题,但是服务器端可以直接将文件写到本地吗?或者有没有其他的方法?
请大家指点,谢谢!
当把Servlet导出的war文件放在我机子上的Tomcat上时,就可以正常导出;但把这个war文件放到服务器上时,不报错,但是没有导出的Excel文件。我在网上查了下,可能是路径的问题,但是服务器端可以直接将文件写到本地吗?或者有没有其他的方法?
请大家指点,谢谢!
解决方案 »
- Struts2中,标签<s:checkbox disabled="true">,提交表单不能获取值
- EJB3 PK Spring 谁主沉浮?未来一年,是决胜之年。
- 网上查了很久,mysql jdbc 经典问题:mysql lost connection
- hibernate 一个类映射多次(每次是一张不同的表)的问题???
- fileupload组件文件上传的疑难问题。。。紧急求助
- 我想在服务器端和客户端效验数据的提交,而只使用一个配置文件,各位给下参考意见。
- 非常简单的问题,看你能不能答出来!
- tomcat的问题
- 请教一个struts关于全局转发和操作映射的问题
- 用request.getParameter("quantities")我为什么取不到值?
- 关于WebService的调用问题,请高手进入看看你到底是不是高手
- 关于xml的一些信息不太懂
写的时候往这个磁盘路径写?结果还是写到服务器的那个路径了吧?我能想到的逻辑,客户端发起一个请求,servlet生成的文件,发送给客户端,客户端接收到这个文件,写到本地。
这才是一个正常的可控的逻辑啊!
我在往上查了查,excel文件的下载设置
servlet里设置响应的header和contenttype
// 设置响应头和下载保存的文件名
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=test.xls");
我没有测试,但愿对你有所帮助
总之,谢谢了!
然后客户端下载至本地
思路是这样滴 不懂Delphi 只能说这么多了
其实服务器端可以不生成文件,而是直接以流的方式传给客户端,走HTTP协议.那么,如果以write file方式,流会先转成服务器本地文件,如果以response方式,那么这个流就会以客户端的响应方式,如同5楼那个方法,这样,在windows端会以弹出对话框的提示方式来保存为客户端的文件.至于你说的从服务器直接写文件到客户端,从安全性考虑,这也是不允许的.个人意见:
服务器生成文件,给予客户端消息(例如:文件路径+文件名称),客户端触发FTP取得(我想Delphi写FTP应该不难)
JAVA写response方式很容易,但DELPHI本人不懂,但我想这个东西思路应该都是相通的.