<form role="form" name="form">
<script cam-script type="text/form-script">
// *********************************************************************************************
// ***************************** FILE UPLOAD FUNCTIONALTIY *****************************
// *********************************************************************************************
inject([ '$scope', '$http', 'Uri', function($scope, $http, Uri) {
debugger;
var BEFORE_UPLOAD = 'beforeUpload',
UPLOAD_SUCCESS = 'uploadSuccess';
$scope.status = BEFORE_UPLOAD;
$http.get(Uri.appUri("engine://engine/:engine/task/" + camForm.taskId)).success(function(result) {
$scope.processInstanceId = result.processInstanceId;
});
camForm.on('submit', function(evt) {
function uploadComplete() {
$scope.$apply(function(){
$scope.status = UPLOAD_SUCCESS;
//now submit form???
evt.submitPrevented = false;
camForm.submit();
});
}
if ($scope.status == BEFORE_UPLOAD) {
evt.submitPrevented = true;
// perform HTML 5 file opload (not supported by IE 9)
var fd = new FormData();
fd.append('data', $scope.file);
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', uploadComplete, false);
xhr.open('POST', $scope.getVariableUploadUrl());
xhr.send(fd);
}
});
$scope.setFile = function(element) {
$scope.file = element.files[0];
};
$scope.getVariableUploadUrl = function () {
return Uri.appUri('engine://engine/:engine/execution/'+$scope.processInstanceId+'/localVariables/attachement_fileName/data');
};
}]);
</script>
Some HTML goes here!
<input type="file" class="form-control" name="attachement_fileName" onchange="angular.element(this).scope().setFile(this)">
</form>