文件上传到本地

简介: 文件上传到本地

FileUpLoadController

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@CrossOrigin
@Api(value = "图片上传", tags = {"图片上传本地接口"})
@RequestMapping("/app/Upload")
@RestController
public class FileUpLoadController {
    private static Object URL = null;
    /**
     * Dong
     * @param file
     * @param request
     * @return
     */
    @ApiOperation("图片上传")
    @PostMapping("/image")
    public AjaxResult uploadImg(MultipartFile file, HttpServletRequest request) {
        if (file.isEmpty()) {
            System.out.println("上传的文件为空!");
        }
        // 文件名
        String fileName =file.getOriginalFilename();
        // 获取文件后缀名
        String extension = fileName.substring(fileName.indexOf("."));
        // 上传文件的路径,如果没有将自动创建
        String uploadFolder = "D://upload/files/";
        // 生成一个新的文件名
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
        String format = simpleDateFormat.format(new Date());
        fileName = format+UUID.randomUUID() + extension;
        File dest = new File(uploadFolder + fileName);
        // 检测文件目录是否存在 不存在则创建
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            file.transferTo(dest);
            System.out.println("上传文件成功!");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("上传文件失败!");
        }
        URL="http://"+request.getServerName() + ":" + request.getServerPort()+"/upload/" + fileName;
        // 返回虚拟文件访问路径
        return AjaxResult.success("image",URL);
    }
}


UploadConfig

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
 * @Author Dong
 * @Date
 * @Version 1.0
 * 设置虚拟路径,访问绝对路径下资源
 **/
@Configuration
public class UploadConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**").addResourceLocations("file:D://upload/files/");
    }
}



相关文章
C#文件上传
C#文件上传
60 0
|
6天前
|
存储 PHP 文件存储
32 单文件上传
路老师分享PHP文件上传教程,涵盖配置php.ini、使用$_FILES变量和move_uploaded_file()函数等关键步骤,帮助你轻松实现单文件上传功能。纯干货,技术知识分享。
20 1
|
11天前
|
Java
smartupload文件上传!
使用 `smartupload.jar` 实现文件上传和下载。首先将 `smartupload.jar` 添加到项目中,然后创建上传页面,确保表单使用 `POST` 方法并设置 `enctype="multipart/form-data"`。接着在服务器端通过 `SmartUpload` 对象处理文件上传,保存文件到指定目录,并获取表单中的其他数据。最后,实现文件下载功能,设置响应头以触发浏览器下载文件。
19 0
|
6月前
|
JSON 数据格式
文件上传~~
文件上传~~
45 0
|
3月前
|
前端开发 JavaScript 数据库
多个文件上传
多个文件上传
31 0
|
JavaScript 前端开发 移动开发
浅谈文件上传
浅谈文件上传
浅谈文件上传
|
存储 移动开发 JavaScript
|
安全 应用服务中间件 PHP
[SUCTF 2019]CheckIn(文件上传)
[SUCTF 2019]CheckIn(文件上传)
165 0
|
开发框架 安全 JavaScript
文件上传利用总结
文件上传利用总结
362 0