如何在没有servlet的下载路径下从浏览器下载文件
问题描述:
我正在使用angularjs前端的Spring Jhipster java应用程序。 我的要求是导出CSV文件中的数据,然后将导出的文件下载到浏览器的下载路径。如何在没有servlet的下载路径下从浏览器下载文件
我知道它可以使用servlet完成,但我们没有使用servlet,那么如果没有使用核心java代码的servlet,我该如何实现。
答
我很困惑,如果你正在导出CSV文件,你有文件对象,那么你可以很容易地将此文件中FileUtils.copyFile(source, dest);
或
private static void copyFileUsingChannel(File source, File dest) throws IOException {
FileChannel sourceChannel = null;
FileChannel destChannel = null;
try {
sourceChannel = new FileInputStream(source).getChannel();
destChannel = new FileOutputStream(dest).getChannel();
destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
}finally{
sourceChannel.close();
destChannel.close(); }}
希望这是有帮助的复制。
感谢Hiren,我不想复制,现在我正在本地系统的某个路径创建csv文件。但是我想把这个路径作为下载文件夹,用户在浏览器中点击导出按钮应该看到导出的文件正在下载。 –
如果文件由JHipster应用程序提供,它将由servlet提供服务,即使它只是来自嵌入式tomcat的默认Servlet,它将从服务器目录提供服务。否则,你可以从nginx服务它。 –