0

我正在我的应用程序中生成一个报告并将其保存在我的 PC 中的某个位置。现在,当用户单击下载按钮时,应打开另存为窗口,并且文件应以指定名称写入指定位置。我可以将文件写入另一个文件,但无法获取另存为窗口。

如何使用 Java 和 Javascript 从另存为窗口下载文件?

对不起!文件类型可以是 HTML 或 PDF 或 CSV。文件的内容是包含少量值和结果的表格。

它是一个桌面应用程序。现在我将文件保存到我的硬编码位置。保存后,如果用户单击下载按钮,应打开另存为窗口,以便用户可以将五个保存到他指定的位置。我正在使用 Java,Spring,休眠和 JavaScript。

4

2 回答 2

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;
于 2013-04-17T11:20:25.637 回答
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 选项

于 2013-04-17T11:17:45.923 回答