Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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服务器端代码后如何从数组中删除第一个元素_Java_Arrays_File Upload - Fatal编程技术网

上传Java服务器端代码后如何从数组中删除第一个元素

上传Java服务器端代码后如何从数组中删除第一个元素,java,arrays,file-upload,Java,Arrays,File Upload,我有一个多文件上传,当我选择两个文件和最后一个文件时,它会复制第一个文件两次,最后一个文件一次。当我选择三个文件时,它会创建第一个文件三次,第二个文件两次,最后一个文件一次。我的数组似乎有问题,每次迭代都不删除上传的文件?有人能帮忙修理吗 private static String UPLOADED_FOLDER = "C://temp//"; @RequestMapping(value = { "/fileUpload" }, method = RequestMethod.POST) @Re

我有一个多文件上传,当我选择两个文件和最后一个文件时,它会复制第一个文件两次,最后一个文件一次。当我选择三个文件时,它会创建第一个文件三次,第二个文件两次,最后一个文件一次。我的数组似乎有问题,每次迭代都不删除上传的文件?有人能帮忙修理吗

private static String UPLOADED_FOLDER = "C://temp//";

@RequestMapping(value = { "/fileUpload" }, method = RequestMethod.POST)
@ResponseBody
public String uploadFile( @RequestParam("number") String number, @RequestParam("files[]") MultipartFile[] files, MultipartHttpServletRequest req, HttpServletResponse res)
{       

    for (MultipartFile file : files) {

    try {
        File directory = new File(UPLOADED_FOLDER + number);
        logger.info(directory.toString());
                if (! directory.exists()){
                    directory.mkdir();
                    logger.info("directory created");
                  }
            byte[] bytes = file.getBytes();
            logger.info(bytes.toString());
            String timeStamp = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
            Random rand = new Random();
            int randomNum = rand.nextInt((10 - 1) + 1) + 1;
            Path path = Paths.get(UPLOADED_FOLDER + number + "//" + file.getOriginalFilename().split("\\.")[0] + " - " +  timeStamp + randomNum + "." + file.getOriginalFilename().split("\\.")[1]);
            logger.info(path.toString());
            Files.write(path, bytes);
            logger.info("You have successfully uploaded '" + file.getOriginalFilename() + "'");
            //return("File Uploaded");


    } catch (Exception e) {
        res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        logger.error("Failed to upload file '" + file.getOriginalFilename() + "'", e);
        //return("File Not Uploaded");
    }

}
    return "redirect:/fileUpload";
}

我看你的代码没有问题。我想你的问题在别的地方。当然,您可以忽略重复项,但如果是我,我宁愿尝试从源代码处解决问题。您认为每次迭代后都不会从阵列中删除上载的文件吗?如果是这样,我如何在每次循环后从数组中删除该文件。增强的for循环应该只处理每个数组元素一次,因此上传后不需要删除该元素。如有疑问,,记录阵列的长度并与预期的长度进行比较。2017-04-18 15:29:45.292 INFO c.g.o.i.controller.AjaxController.404-阵列长度:1 2017-04-18 15:29:45.293 INFO c.g.o.i.controller.AjaxController.410-c:\temp\600000\Capture-2017041815299.JPG 2017-04-18 15:29:45.299 INFO c.g.o.i.controller.AjaxController.412-您有已成功上载“Capture.JPG”2017-04-18 15:29:45.341 INFO c.g.o.i.controller.AjaxController.404-数组长度:2 2017-04-18 15:29:45.342 INFO c.g.o.i.controller.AjaxController.410-c:\temp\600000\Capture-2017041815292.JPGLooks类似于完成两次,因为我只选择了image Capture.JPG一次?我看不出你的代码有什么问题。我想你的问题在别的地方。当然,您可以忽略重复项,但如果是我,我宁愿尝试从源代码处解决问题。您认为每次迭代后都不会从阵列中删除上载的文件吗?如果是这样,我如何在每次循环后从数组中删除该文件。增强的for循环应该只处理每个数组元素一次,因此上传后不需要删除该元素。如有疑问,,记录阵列的长度并与预期的长度进行比较。2017-04-18 15:29:45.292 INFO c.g.o.i.controller.AjaxController.404-阵列长度:1 2017-04-18 15:29:45.293 INFO c.g.o.i.controller.AjaxController.410-c:\temp\600000\Capture-2017041815299.JPG 2017-04-18 15:29:45.299 INFO c.g.o.i.controller.AjaxController.412-您有已成功上载“Capture.JPG”2017-04-18 15:29:45.341 INFO c.g.o.i.controller.AjaxController.404-数组长度:2 2017-04-18 15:29:45.342 INFO c.g.o.i.controller.AjaxController.410-c:\temp\600000\Capture-2017041815292.JPGLooks是否像这样做了两次,因为我只选择了image Capture.JPG一次?