我需要从我服务器上的某个网址下载文件(这是一个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。
答案 0 :(得分:0)
我发现了问题 - 这是我的文件路径字符串
"/assets/zip/my_file.zip"
在开头的斜杠处,路径是相对于文件系统的,而不是服务器根目录。这就是访问被拒绝的原因 - 服务器没有读取文件系统根目录的权限,而且在该路径上根本找不到该文件。
所以解决方案 - 删除前导斜杠:
"assets/zip/my_file.zip"
现在它正在工作。