0
私は構造を持つHTMLフォームがあります。アップロードデータと、複数のファイルangularjsとし、Spring MVCの
<form class="form-horizontal" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-sm-10 top-element">
<select class="form-control" ng-model="category" id="categorySelect" required>
<option selected value="1">Application & Services</option>
<option value="2">Benefits & Paper Work</option>
<option value="3">Hardware & Software</option>
<option value="4">People Management</option>
<option value="5">Security & Access</option>
<option value="6">Workplaces & Facilities</option>
</select>
</div>
<div class="col-sm-10 element">
<input type="text" ng-model="name" class="form-control" id="ticketName" required>
</div>
<div class="col-sm-10 element">
<textarea class="form-control" ng-model="description" id="ticketDescription" rows="3"></textarea>
</div>
<div class="col-sm-10 element">
<select class="form-control" ng-model="urgency" id="ticketUrgency" name="urgency">
<option selected value="Low">Low</option>
<option value="Medium">Medium</option>
<option value="High">High</option>
<option value="Critical">Critical</option>
</select>
</div>
<div class="col-sm-10 element">
<input class="form-control" id="date" name="date" ng-model="date" placeholder="MM/DD/YYYY" type="text"/>
</div>
<div class="col-sm-10 element">
<div class="form-inline">
<input type="file" class="form-control" id="file" name="file" file-model="file" multiple
accept=".pdf,.jpeg,.jpg,.doc,.docx,.png">
<input type="button" class="form-control" id="deleteFile"
onclick="document.getElementById('file').value = ''" value="Delete">
</div>
</div>
<div th:text="${error}"></div>
<div class="col-sm-10 element">
<textarea class="form-control" id="comment" ng-model="comment" rows="3"></textarea>
</div>
</div>
<div class="form-inline" style="float: right; margin-bottom: 60px; margin-right: 60px;">
<input type="submit" ng-click="saveDraft()" name="draft" class="btn btn-primary ticket-list-btn draft-btn"
value="Save as Draft">
</div>
</form>
をそして、私は http.post要求でサーバーにデータをアップロードします。あなたはファイルなしでこれを行う場合は、すべてが正常に動作します: 角度コントローラ:
var data = {
name: $scope.name,
description: $scope.description,
desiredResolutionDate: $scope.desiredResolutionDate,
state: $scope.ticketState,
categoryId: $scope.category,
urgency: $scope.urgency,
comment: $scope.comment
}
;
$http.post(url, data)
.then(
function (response) {
},
function (errResponse) {
console.log(errResponse);
}
)
と春コントローラ:私は私のTicketDtoオブジェクトフィールドMultipartFile[] files;
に追加するなど、ポスト要求にファイルを送信しようとした
@RequestMapping(value = "/new", method = RequestMethod.POST)
public void createTicket(@RequestBody TicketDto newTicketDto, Authentication authentication) {
User user = userService.loadUserByUsername(authentication.getName());
newTicketDto.setOwnerId(user.getId());
Ticket ticket = TicketDto.transformToEntity(newTicketDto);
ticketService.save(ticket);
}
他のフィールドは、それはdidn.t仕事。これどうやってするの?
ありがとうございますが、1つのファイルでのみ動作します。複数のファイルのアップロードを処理するにはどうすればよいですか?私は
@RequestParam MultipartFile[] files
を使用しようとしましたが、私がファイルをアップロードするとき、配列の長さは0です。 – Fairyanglejsコードを作成する際には単純すぎる 'var file = $ scope.file;'自身のファイル 'fd.append( 'file' ); ' –
私はあなたがファイルの配列のすべての要素を返すように0のインデックス変更を返す' file-model = file'指令を使用していると思います –