Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java文件下载-下载的文件大小始终为零Kb_Java_File_Download - Fatal编程技术网

Java文件下载-下载的文件大小始终为零Kb

Java文件下载-下载的文件大小始终为零Kb,java,file,download,Java,File,Download,我已经编写了一个java控制器来处理来自服务器的任何下载请求。我的文件存在于服务器中,但每次下载的文件都是0 kB。文件正在下载,但大小始终为0 Kb。请帮帮我。这是我的密码- @RequestMapping(value="/downloadFile/{docId}") public void getDownloadFile(@PathVariable(value = "docId") Integer docId, HttpServletResponse response) throws

我已经编写了一个java控制器来处理来自服务器的任何下载请求。我的文件存在于服务器中,但每次下载的文件都是0 kB。文件正在下载,但大小始终为0 Kb。请帮帮我。这是我的密码-

@RequestMapping(value="/downloadFile/{docId}")
    public void getDownloadFile(@PathVariable(value = "docId") Integer docId, HttpServletResponse response) throws Exception {
        String userName = getUserName();
        try {
            DocVault documentsVault = documentsVaultRepository.findDocumentAttachment(docId);
            String fileName = documentsVault.getDocumentName();
            int customerId = documentsVault.getCustomerId();

            Map<Integer, String> customerInfo = cspUtils.getCustomersInfo(userName);
            Set<Integer> customerIds = customerInfo.keySet();
            for (int custId : customerIds) {
                if (custId == customerId) {
                    String path = env.getProperty("doc.rootfolder") + File.separator + documentsVault.getFileName();
                    service.downloadFile(fileName, path, response);
                } else {
                    logger.info("Customer not linked to user");
                }
            }
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }
    }
我没有任何例外。请帮忙。 先谢谢你

response.setContentLength((int) downloadFile.length());
去掉这个。容器将自动设置它

int bytesRead = -1;

您不需要初始化此变量。它将被分配到下一行。

谢谢您的帮助。我发现我的内容配置标题有问题。我只传递了文件名,没有扩展名。当我传递完整的文件名时,它工作得非常好。文件的大小和扩展名正确

谢谢你的意见。现在尺寸合适了。但是文件类型只是作为“文件”下载,而不是.txt、.pdf、.doc等。你能帮我吗?以前也存在此问题。然后-可能(通过开发人员控制台或fiddler)检查返回的
内容处置
标题。我看您设置正确,但是您应该检查返回到browser@HarshitGupta“另存为”业务完全取决于作为
内容配置发送的内容。
int bytesRead = -1;