0

我需要从我的服务器上的某个 URL 下载一个文件(这是一个 google app angine 项目)。这是我使用的:

@At("/api/download")
@Service
public class ZipDownloadService {

  @Get
  public Reply<?> downloadZip() throws IOException, ServletException {

    try (FileInputStream stream = new FileInputStream("/assets/zip/my_file.zip")) {
      final byte[] bytes = IOUtils.toByteArray(stream);
      return Reply.with(bytes).type("application/octet-stream").as(Raw.class);
    }
  }
}

zip 文件存储在我项目的 web 目录中,并且该文件对每个人都有读取权限,但是当我转到 url 时,我总是得到 AccessControlException。

4

1 回答 1

0

我发现了问题 - 这是我的文件路径字符串

"/assets/zip/my_file.zip"

以斜线开头的路径是相对于文件系统的,而不是服务器根目录。这就是拒绝访问的原因——服务器无权读取文件系统的根目录,而且在该路径上根本找不到该文件。

所以解决方案 - 删除前导斜杠:

"assets/zip/my_file.zip"

现在它正在工作。

于 2014-12-01T16:02:35.027 回答