SpirigBoot项目
依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
主类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class UploadTestApplication {
public static void main(String[] args) {
SpringApplication.run(UploadTestApplication.class, args);
}
}
结果集类:
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class Resp<E> {
private String code;
private String message;
private E body;
public static<E> Resp<E> success(E body){
return new Resp("200","上传成功",body);
}
public static<E> Resp<E> fail(String code,String message){
return new Resp(code,message,(Object)null);
}
}
接口
import com.example.uploadtest.entity.Resp;
import org.springframework.web.multipart.MultipartFile;
public interface UploadService {
public Resp<String> upload(MultipartFile file);
}
接口实现类
import com.example.uploadtest.entity.Resp;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
@Service
public class UploadServiceImpl implements UploadService{
@Override
public Resp<String> upload(MultipartFile file) {
if(file.isEmpty()) return Resp.fail("400","文件为空!");
//得到文件的原始名字
String originalFilename = file.getOriginalFilename();
//根据时间毫秒数取一个新的文件名称
String fileName = System.currentTimeMillis() + "." + originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
String filePath="G:\\uploadtest\\";
File dest = new File(filePath + fileName);
if (!dest.getParentFile().exists()) dest.getParentFile().mkdirs();
try {
file.transferTo(dest);
} catch (Exception e) {
e.printStackTrace();
Resp.fail("500",originalFilename+"上传失败!");
}
return Resp.success(fileName);
}
}
Controllerc控制层
import com.example.uploadtest.entity.Resp;
import com.example.uploadtest.service.UploadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
public class UpLoadController {
@Autowired
private UploadService uploadService;
@RequestMapping(value = "/upload.do",method = RequestMethod.POST)
public Resp<String> upload(@RequestParam("file") MultipartFile file){
return uploadService.upload(file);
}
}