これは数日間試しました。従来の方法のようにAngularJsを使用してファイルをアップロードする方法
<form ng-submit="create()" class="form-horizontal" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label">name : </label>
<div class="controls">
<input type="text" class="input-xlarge" ng-model="message.title" />
</div>
</div>
<div class="control-group">
<label class="control-label">avatar : </label>
<div class="controls">
<input type="file" ng-model="message.avatar" name="message[avatar]" />
</div>
</div>
<div class="well">
<input class="btn btn-large btn-primary" type="submit" value="建立資料" />
</div>
</form>
私はキャリバーウェーブの宝石を使用して、シーンの背後にあるファイルのアップロードを処理しています。私のコントローラは次のようなものです:
$scope.create = function($scope.message){
var deferred = $q.defer();
$http({
method: 'POST',
url: '/resources/messages',
data: $.param({message: message}),
headers: {'Content-Type': 'multipart/form-data'}
}).
success(function(data, status, headers, config){
deferred.resolve(data);
}).
error(function(data, status, headers, config){
deferred.reject(status);
});
return deferred.promise;
};
しかし、それは動作しません。私がしようとしているのはフォームを作成して古いもののようにすべてをアップロードすることですが、ng-uploadやthis post、jquery file uploadなどのサンプルは私のニーズに合っていません。この目的のためのサンプルコードがありますか?ありがとうございました。
xhrを使っていくつかのファイルをアップロードしていて、これがあなたの探しているものでない場合は、あなたが探しているものが何であるかを詳しく知ることができます:http: //jsfiddle.net/danielzen/utp7j/ – shaunhusain