Нужна помощь в выяснении, почему размер загружаемого файла составляет 0 байт?При нажатии на кнопку загрузки на странице появляется диалоговое окно сохранения или открытия, когда я выбираю сохранить в каком-то месте, сохраняет файл, но это пустой файл.Что с ним не так?
JSP-файл
<form target="_blank" method="get" action="/csm/download.action" >
<input type="hidden" id="absFileName" name="absFileName" value="">
<input type="submit" class="btn" id="btnDownloadConfig" value="Download Configuration"/>
</form>
Struts.xml
<action name="download" class="com.abc.csm.actions.DownloadConfiguration">
</action>
Мой код для скачивания
String filePath = ServletActionContext.getServletContext().getRealPath("/")
filePath+=executionResponse
def splits=filePath.split("/")
cfgfileFileName=splits[splits.length-1]
println filePath+", "+cfgfile+", "+cfgfileFileName+", "+executionResponse
File f=new File(filePath)
println("Does file Exists? "+f.exists())
InputStream inputStream = new FileInputStream(f)
response.setContentType("APPLICATION/xml")
response.addHeader("Content-Disposition", "attachment; filename=\""+cfgfileFileName+"\"")
Мой вывод вconsole
E:\Tomcat 6\webapps\csm\files//1123/Infa9_1_csmclientbeetle.xml, Infa9_1_csmclientbeetle.xml, files//1123/Infa9_1_csmclientbeetle.xml
Does file Exists? true
Расположение моего файла в веб-приложениях tomcat
E:\Tomcat 6\webapps\csm\files\1123
Обновление
Я нашел похожий вопрос это помогло мне
Это то, что я сделал с InputStream
FileInputStream ins = new FileInputStream(f)
OutputStream out = response.getOutputStream()
byte[] buf = new byte[1024]
int len = 0
while ((len = ins.read(buf)) >= 0)
{
out.write(buf, 0, len)
}
ins.close()
out.close()