File Upload
API Raw
Request Format
POST http://semogyo-alpha/rest/1/files
multipart/form-data
형식으로 보내야함
Response Format
{
"status": "OK",
"success": true,
"version": "1",
"error": null,
"data": {
"id": "fb803148-641e-4177-b3a6-d03bb37bd483",
"name": "ico_common.png",
"size": 9255,
"contentType": "image/png",
"regDate": null,
"url": "http://localhost:8080/rest/1/files/fb803148-641e-4177-b3a6-d03bb37bd483"
}
}
관리자 화면 개발
1개의 파일을 등록할 경우
View File
<div class="form-group">
<label class="col-md-2 control-label">프로필 사진</label>
<div class="col-md-10">
<img ng-src="{{ user.profileImage.url }}" ng-show="user.profileImage != null" />
<div ng-show="user.profileImage != null">
<button class="btn btn-primary" type="button" ng-click="deleteProfileImage()">
<i class="fa fa-trash"></i> 프로필 사진 삭제
</button>
</div>
<div>
<input type="file" file-model="profileImage"/>
</div>
</div>
</div>
위 소스에서 <input type="file" file-model="profileImage"/>
와 같이 file-model 부분에 파일 정보가 설정된다.
Controller
var file = $scope.profileImage;
fileService.uploadFile(file).then(function(fileInfo) {
$scope.user.profileImage = fileInfo;
}
Sever Request
@Getter
@Setter
public class UserEditRequest {
private FileRequest profileImage;
@Getter
@Setter
public static class FileRequest {
String id;
}
}
여러개의 파일을 등록할 경우
View File
<input type="file" file-model="defaultImage"/>
<input type="file" file-model="thumbnailImage"/>
Controller
var file = $scope.profileImage;
fileService.uploadFiles($scope.defaultImage, $scope.thumbnailImage).then(function(fileInfos) {
$scope.user.defaultImage = fileInfos[0];
$scope.user.defaultImage = fileInfos[1];
}
Sever Request
@Getter
@Setter
public class UserEditRequest {
private FileRequest defaultImage;
private FileRequest thumbnailImage;
@Getter
@Setter
public static class FileRequest {
String id;
}
}