2016-06-09 2 views
0

В настоящее время я пытаюсь загрузить файл, но проблема с тем, что форма загружает полезную нагрузку с помощью данных с несколькими данными вместо объекта JSON.Назад и поддержка загрузки файлов - JSON

Назад & будет принимать объект JSON с именем файла и filedata внутри, но я не могу понять, как это сделать с помощью ng-admin.

Мой код в настоящее время выглядит следующим образом:

.uploadInformation({ 'url': BackandProvider.getApiUrl()+'/1/objects/action/games', 'params': {'name':'files'}, 'headers': { 'Content-Type': false }, 'data': data }) 
+0

какой нг-администратора вы используете, может быть, это одна: https://github.com/marmelab/ng-admin поддержка JSON – user3375230

ответ

0

Я вижу, вы используете BackandProvider так, чтобы обойти это, вы можете реализовать себя загрузить. От Backand docs

<body class="container" ng-app="app" ng-controller="DemoCtrl" ng-init="initCtrl()"> 
    <h2>Backand Simple Upload File</h2> 
    <br/> 
    <form role="form" name="uploadForm"> 
    <div class="row"> 
     <img ng-src="" ng-show="imageUrl" /> 
     <input id="fileInput" type="file" accept="*/*" ng-model="filename" /> 
     <input type="button" value="x" class="delete-file" title="Delete file" ng-disabled="!imageUrl" ng-click="deleteFile()" /> 

    </div> 
    </form> 
</body> 




    // input file onchange callback 
    function imageChanged(fileInput) { 

    //read file content 
    var file = fileInput.files[0]; 
    var reader = new FileReader(); 

    reader.onload = function(e) { 
     upload(file.name, e.currentTarget.result).then(function(res) { 
     $scope.imageUrl = res.data.url; 
     $scope.filename = file.name; 
     }, function(err){ 
     alert(err.data); 
     }); 
    }; 

    reader.readAsDataURL(file); 
    }; 

    // register to change event on input file 
    function initUpload() { 
    var fileInput = document.getElementById('fileInput'); 

    fileInput.addEventListener('change', function(e) { 
     imageChanged(fileInput); 
    }); 
    } 

    // call to Backand action with the file name and file data 
    function upload(filename, filedata) { 
    // By calling the files action with POST method in will perform 
    // an upload of the file into Backand Storage 
    return $http({ 
     method: 'POST', 
     url : Backand.getApiUrl() + baseActionUrl + objectName, 
     params:{ 
     "name": filesActionName 
     }, 
     headers: { 
     'Content-Type': 'application/json' 
     }, 
     // you need to provide the file name and the file data 
     data: { 
     "filename": filename, 
     "filedata": filedata.substr(filedata.indexOf(',') + 1, filedata.length) //need to remove the file prefix type 
     } 
    }); 
    }; 
Смежные вопросы