【问题标题】:DownloadLink with an option to choose the directory where the file should be saved apache wicketDownloadLink 可以选择保存文件的目录 apache wicket
【发布时间】:2013-07-22 09:37:32
【问题描述】:

这是我从 wicket 示例网站下载的链接。我想通过让用户选择应该保存文件的目录来改变它。有什么方法可以实现吗?提前致谢

     add(new DownloadLink("generate_report", new AbstractReadOnlyModel<File>()
    {
        private static final long serialVersionUID = 1L;

        @Override
        public File getObject()
        {
            File tempFile;
            try
            {
                tempFile = File.createTempFile("wicket-examples-download-link--", ".tmp");

                InputStream data = new ByteArrayInputStream("some data".getBytes());
                Files.writeTo(tempFile, data);

            }
            catch (IOException e)
            {
                throw new RuntimeException(e);
            }

            return tempFile;
        }
    }).setCacheDuration(Duration.NONE).setDeleteAfterDownload(true));

【问题讨论】:

  • 不,因为文件在客户端磁盘上的放置是浏览器的工作,浏览器会打开一个对话框,询问目的地或使用默认的下载文件夹。
  • 如何“告诉”浏览器打开这个对话框?此函数将其保存在默认文件夹中:(
  • 用户“告诉”浏览器通过右键单击链接并选择适当的选项来打开对话框(不同浏览器中的标签不同)。否则用户“告诉”浏览器使用默认下载目录。
  • 所以我不能强制(右键单击->保存文件)在鼠标左键单击按钮时触发?
  • 所以没有“类似FileUploadField”的东西可以下载吗? ://

标签: java html apache download wicket


【解决方案1】:

如果您有预设路径,那么用户可以使用 include_path 函数选择他们想要使用的路径;但是,用户将无法创建自己的目录/路径。

编辑:无法在该评论中添加代码,哈哈,但这就是我要去的地方。

$path1=set_include_path('file\whateveryouwant');

然后您可以使用多个路径并让用户通过调用 $path1 从路径中进行选择(这将是您希望他们使用的路径的扩展名)。 更多信息:http://php.net/manual/en/function.get-include-path.php

【讨论】:

  • 所以没有选项可以在点击时打开一个窗口并手动选择目标文件夹?我发现它用于上传文件:wicket-library.com/wicket-examples/upload/single?0 但我找不到下载示例
  • 您可以使用 set_include_path 设置您希望用户选择的路径。然后您可以使用 get_include_path 来检索该设置路径。
  • 请注意这是 PHP 而不是 Java。
  • @Nicktar 非常正确,但由于这是一个网页,您可以很容易地合并两种语言。
  • @Llama 除了将 php 生成的链接集成到即时生成目标的检票口生成页面中可能很困难之外,您的答案并没有解决 OP 的问题。这不是关于在服务器上包含文件或目录,而是关于客户端的下载目的地,由于安全隐患和 http 的工作方式,这无法完成。
猜你喜欢
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多