Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Jakarta ee 上传一个文件,Spring MVC+;云蜂_Jakarta Ee_Spring Mvc_File Upload_Cloudbees - Fatal编程技术网

Jakarta ee 上传一个文件,Spring MVC+;云蜂

Jakarta ee 上传一个文件,Spring MVC+;云蜂,jakarta-ee,spring-mvc,file-upload,cloudbees,Jakarta Ee,Spring Mvc,File Upload,Cloudbees,我在本地Tomcat的服务器上工作过,现在我刚刚将我的应用程序部署到CloudBees。 除了将文件上传到服务器的目录之外,一切都很好 我的控制器中有这样一段代码,它在localhost上为我工作: @RequestMapping("/main/admin/upload") public ModelAndView fileUploaded( @ModelAttribute("uploadedFile") FileUpload uploadedFile, final

我在本地Tomcat的服务器上工作过,现在我刚刚将我的应用程序部署到CloudBees。 除了将文件上传到服务器的目录之外,一切都很好

我的控制器中有这样一段代码,它在localhost上为我工作:

@RequestMapping("/main/admin/upload")
public ModelAndView fileUploaded(
        @ModelAttribute("uploadedFile") FileUpload uploadedFile,
        final HttpServletRequest request,
        final HttpServletResponse response, BindingResult result) {

    InputStream inputStream = null;
    OutputStream outputStream = null;
    String pdfDirectory = uploadedFile.getPdfDirectory();
    MultipartFile file = uploadedFile.getFile();
    String fileName = file.getOriginalFilename();

    try {
        inputStream = file.getInputStream();

        String pdfFileDirectory = request.getSession().getServletContext()
                .getRealPath("/")
                + "resources\\pdf\\" + pdfDirectory + "\\";
        File newFile = new File(pdfFileDirectory + fileName);
        if (!newFile.exists()) {
            newFile.createNewFile();
        }
        outputStream = new FileOutputStream(newFile);
        int read = 0;
        byte[] bytes = new byte[1024];

        while ((read = inputStream.read(bytes)) != -1) {
            outputStream.write(bytes, 0, read);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

    return new ModelAndView("redirect:/main/admin");
}
我不确定这条线是否正常工作:

request.getSession().getServletContext().getRealPath("/")

我确信文件夹已经创建,因为我已经在eclipse项目中手动添加了它们。在解压到CloudBees之前,我还手动将一些文件添加到这些文件夹中,这些文件是可以访问的,但是当我尝试使用上述代码上载文件时,它不起作用。

文件系统在云上不是持久的,因此以与硬盘上相同的方式将文件上载到文件系统不是一个好的做法

正在重新部署/扩展的应用程序将在一个不同的节点上启动,所以您不应该在那个里存储文件。我们建议使用AmazonS3(或类似的文件存储)进行存储,并使用本地(“临时”)文件系统作为临时缓存

您可以使用System.getProperty(“java.io.tempDir”)获取配置的本地温度

CloudBees还提供了两个不同的示例,可以帮助您将文件上载到AmazonS3,您还可以使用Dropbox、Google Drive等等


更多信息。

我发现了一件事……我不确定works是否会返回此行:/mnt/genapp/apps/7c7c897e/staxcat/install/webapp.war/resources/pdf/Facebook/是否有任何方法将文件添加到提取到war文件的应用程序中?