使用Java和Javascript从save as window下载文件

时间:2013-04-17 11:14:58

标签: java javascript

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

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

抱歉! 文件类型可以是HTML或PDF或CSV。文件的内容是包含很少值和结果的表。

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

2 个答案:

答案 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选项