Я пытаюсь загрузить файл с помощью angularjs, но есть проблема: «Текущий запрос не является составным запросом», и я почти пробую каждое решение от Google, но не решаю мою проблему, надеюсь, кто-то может ответить на мой вопрос, СПАСИБО.
это моя конфигурация springMVC
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="5242880"></property>
</bean>
это HTML
<input type="file" id="file"/>
<button class="btn btn-primary" type="button" ng-click="uploadFile()">上传</button>
это угловой контроллер
$scope.uploadFile = function () {
uploadService.uploadFile().success(function (response) {
if(response.success){
$scope.image_entity.url = response.message;
}else{
alert(response.message);
}
})
}
этоугловой сервис
this.uploadFile = function () {
var formData = new FormData();
formData.append("file", file.files[0]); //文件上传框的name
return $http({
url: "/upload.do",
method: "post",
data: formData,
headers: {"Content-Type": undefined},
transformRequest: angular.identity
})
}
это uploadController
@RequestMapping("/upload")
public ReturnResult upload(MultipartFile file){
String fullName = file.getOriginalFilename();
String extName = fullName.substring(fullName.lastIndexOf(".") + 1);
try {
FastDFSClient client = new FastDFSClient("classpath:config/fdfs_client.conf");
String fileId = client.uploadFile(file.getBytes(), extName);
String url = file_server_url + fileId;
return new ReturnResult(true, url);
} catch (Exception e) {
e.printStackTrace();
}
}
Я вижу, что браузер Google отправляет
Метод запроса: POST
Заголовки запроса
Content-Type: multipart / form-data;border = ---- WebKitFormBoundaryrzP8MUha8lcbDzdn
Данные формы
------ WebKitFormBoundaryrzP8MUha8lcbDzdn
Расположение содержимого: данные формы;Name = "файл";filename = "1.jpg"
Тип содержимого: image / jpeg
------ WebKitFormBoundaryrzP8MUha8lcbDzdn -
это проблема?пожалуйста, помогите мне.