我想上传图片时收到错误Required request part 'file' is not present
我打算上传视频和图片。视频上传效果很好,但图片无法正常工作
这是我的代码。
Spring-boot
@ApiOperation(value = "Post new file")
@RequestMapping(value = "/", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
@RequestParam (value = "accesstoken", required = true) String accessToken,
RedirectAttributes redirectAttributes) throws Exception{
tokenService.verifyAdmin(accessToken);
storageService.store(file);
return "You successfully uploaded " + file.getOriginalFilename() + "!";
}
StorageService.store
@Override
public void store(MultipartFile file) {
try {
if (file.isEmpty()) {
throw new StorageException("Failed to store empty file " + file.getOriginalFilename());
}
Files.copy(file.getInputStream(), this.rootLocation.resolve(file.getOriginalFilename()));
} catch (IOException e) {
throw new StorageException("Failed to store file " + file.getOriginalFilename(), e);
}
}
Html - 图片上传
<div class="control-group">
<label class="control-label" for="date01">Cover Image</label>
<div class="controls">
<button class="btn-primary" name="file" ngf-pattern="'image/*'" ngf-accept="'image/*'" ngf-max-size="2MB" ngf-select="ctrl.uploadCoverImageFile($file)">Upload</button>
</div>
</div>
Html-视频上传
<div class="control-group">
<label class="control-label" for="date01">Upload video</label>
<div class="controls">
<button class="btn-primary" ngf-select="ctrl.uploadVideoFile($file)">Upload</button>
</div>
</div>
控制器
self.uploadCoverImageFile = function(file){
self.upload(file,-1);
};
self.uploadVideoFile = function(file){
self.upload(file,1);
};
self.upload = function (file,x) {
fileUploadService.uploadFile(file).then(function (resp) {
console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
}, function (resp) {
console.log('Error status: ' + resp);
}, function (evt) {
if(x > 0)
self.videoUploadProgress = parseInt(100.0 * evt.loaded / evt.total);
else
self.coverimageUploadProgress = parseInt(100.0 * evt.loaded / evt.total);
});
};
FileuploadService.uploadFile
//ng-file-upload: [https://github.com/danialfarid/ng-file-upload]
uploadFile: function(file){
return Upload.upload({
url: baseEndPoint + '/',
data: {file: file, accesstoken: userService.accesstoken}
});
},
config.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="500000000000"/>
</bean>
</beans>
AppConfig.java
@ImportResource("classpath:/vod/config/config.xml")
@Configuration
public class AppConfig {
}
答案 0 :(得分:0)
想启用multipart
:我遇到了同样的问题,我只是向.properties文件添加了以下属性:
multipart.enabled=true