天天看点

springboot上传文件报java.io.FileNotFoundException: D:\555(拒绝访问)

后端代码:标红的地方为出错的地方,经检查发现是在写文件的时候,没有指定文件名称,只是给了一个写文件的路径,不知道上传的对应的流应该写在什么地方,所以保存。

@Controller
public class UploadFileController  {
    //private static String path = "D:/ideaworkspace/demo-11/demo-11/src/main/resources/static/image/";
    private static String path = "D:/555/";
    @RequestMapping("/upload")
    @ResponseBody
    public String upload(@RequestParam("file_name")MultipartFile file, HttpServletRequest request){
        String username = request.getParameter("username");
        System.out.println("用户名:"+username);
        String filename = file.getName();
        System.out.println("上传文件的名称:"+filename);

        //获取文件的后缀名
        String suffixName = file.getOriginalFilename();
        System.out.println(suffixName);
        //后缀名称
        String a[] = suffixName.split(".");
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
        System.out.println();

        System.out.println(suffixName.substring(suffixName.indexOf(".")));

        filename = UUID.randomUUID()+suffixName.substring(suffixName.indexOf("."));
        File newFile = new File(path);
        修改为下列代码即可:
        File newFile = new File(path+filename); 
        try {
            file.transferTo(newFile);  //拷贝文件,性能高效,比原先的方便
            return filename;
        } catch (IOException e) {
            e.printStackTrace();
        }

        return "上传失败";
    }
}
前端代码,重点是要添加enctype="multipart/form-data":
           
<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
    <h1>测试文件上传</h1>
    <form id="upload" name="upload" action="/upload" method="post" enctype="multipart/form-data">
        选择文件:<input type="file" name="file_name" />
        姓名:<input type="text" name="username"/>
        <input type="submit" value="提交"/>
    </form>
</body>
</html>
           

继续阅读