SpringMvc+Angularjs 멀티 파일 대량 업로드
jar 가방
commons-fileupload
commons-io
spring-mvc.xml 구성
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
</bean>
Controller
@RequestMapping(value = "api/v1/upload", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Map upload (@RequestParam(value = "files") MultipartFile [] files,
@RequestParam(value = "id") String id,
HttpServletRequest request, HttpServletResponse response) {
Map res = new HashMap();
try {
log.info("upload>>>>>id:{}", id);
if (files!=null) {
for (MultipartFile file:files) {
log.info("filename:{}", file.getOriginalFilename());
}
}
} catch (Exception e) {
log.error("upload>>>> :{}", e.toString());
}
log.info("upload>>>> :{}", res);
return res;
}
로컬 저장
// copy File
public boolean copyFile (MultipartFile tempFile, String filePath) {
Boolean res = false;
try {
File file = new File(filePath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//
tempFile.transferTo(file);
res = true;
} catch (Exception e) {
log.info("copyFile>>>> :{}", e.toString());
}
return res;
}
AngularJs 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="uploadCtrl">
<p><input type="file" multiple="multiple" name="files"></p>
<p><input type="text" name="id" ng-model="id"></p>
<p><input type="button" value=" " ng-click="submit()"></p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('uploadCtrl', ["$scope", "$http", function($scope, $http) {
$scope.submit = function () {
var fd = new FormData();
var files = document.querySelector('input[name="files"]').files;
for (var i=0; i<files.length; i++) {
fd.append("files", files[i]);
}
fd.append("id", $scope.id);
$http({
method:'POST',
url : '/Project/api/v1/upload',
data: fd,
headers: {'Content-Type':undefined},
transformRequest: angular.identity
}).success(function (response) {
console.log(response.data);
}).error(function () {
});
}
}]);
</script>
</body>
</html>
Form 양식 커밋
<form action="/Project/api/v1/upload" method="POST" enctype="multipart/form-data">
<p><input type="text" name="id" /></p>
<p><input type="file" multiple="multiple" id="files" name="files" /></p>
<p><input type="submit" value="Submit" /></p>
</form>
위에서 말한 것은 여러분께 소개해 드린 Spring Mvc+Angularjs가 여러 개의 파일을 대량으로 실현하는 데 도움이 되었으면 합니다. 만약에 궁금한 점이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.