我正在我的应用程序中生成一个报告并将其保存在我的PC中。现在,当用户单击下载按钮时,应该打开另存为窗口,文件应该写入具有指定名称的指定位置。我能够将文件写入另一个文件,但我无法获得另存为窗口。
如何使用Java和Javascript从保存为窗口下载文件?
抱歉! 文件类型可以是HTML或PDF或CSV。文件的内容是包含很少值和结果的表。
它是一个桌面应用程序。现在我将文件保存到我的硬编码位置。如果用户点击下载按钮保存后,应该打开另存为窗口,以便用户可以将五个保存到他指定的位置。我正在使用Java,Spring, Hibernate和JavaScript。
答案 0 :(得分:1)
使用JFilechooser
String wd = System.getProperty("user.dir");
JFileChooser fc = new JFileChooser(wd);
int rc = fc.showDialog(null, "Select Data File");
if (rc == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
filename = file.getAbsolutePath();
// call your function here
}
else
System.out.println("File chooser cancel button clicked");
return;
答案 1 :(得分:0)
请确保您的下载网址发送正确的内容类型。
这是我创建的一个小帮手方法:
protected void SetContentType(ContentType type)
{
switch (type)
{
case ContentType.HTML:
{
_context.Response.ContentType = "text/html";
break;
}
case ContentType.JSON:
{
_context.Response.ContentType = "application/json";
break;
}
case ContentType.Text:
{
_context.Response.ContentType = "text/plain";
break;
}
case ContentType.PDF:
{
_context.Response.ContentType = "application/pdf";
break;
}
case ContentType.OctetStream:
{
_context.Response.ContentType = "application/octet-stream";
break;
}
case ContentType.Excel:
{
_context.Response.ContentType = "application/vnd.ms-excel";
break;
}
default:
{
_context.Response.ContentType = "application/json";
break;
}
}
}
如果您希望文件始终下载,请使用application / octet-stream选项