Загрузка файла на сайт node.js из файла начальной загрузки / углового ejs

0

Итак, это мой третий день, пытаясь понять это, поэтому я подумал, что попрошу о помощи.

Я пытаюсь получить способ загрузить файл с именем файла или ключевыми словами, чтобы он был доступен для поиска позже. Я сохраняю их в наборе данных, поэтому, когда я хочу добавить еще один шаг в процесс, я могу искать изображения, которые уже были загружены, чтобы их можно было повторно использовать. По крайней мере, это цель, но я, похоже, не могу сделать первый шаг загрузки файла.

В файле ejs у меня есть эта форма:

<div class="modal-content">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">&times;</button>
    <h4 class="modal-title">{{modal_header}}</h4>
  </div>
  <div class="modal-body">
    <form >
          <div class="form-group">
            <label for="ProblemInput">Step</label>
            <input type="text" class="form-control" id="ProblemInput" placeholder="Step Number" ng-model="step">
          </div>
          <p class="form-group">
            <label for="DescriptionInput">Description</label>
            <textarea class="form-control" id="DescriptionInput" placeholder="Detail Description" ng-model="description"></textarea>
          </p>
          <input
           type="file"
           ngf-select
           ng-model="file"
           name="file"
           ngf-pattern="'image/*'"
           accept="image/*"
           ngf-max-size="20MB"
           />
        Image thumbnail: <img style="width:100px;" ngf-thumbnail="file || '/thumb.jpg'"/>
        <i ng-show="file.$error.required">*required</i><br>
        <i ng-show="file.$error.maxSize">File too large
        {{file.size / 1000000|number:1}}MB: max 20M</i>
    </form>
  </div>
  <div class="modal-footer">
   <!-- <button type="button" data-ng-click="SaveNAdd()" class="btn btn-default" >Save and Add Another</button> -->
    <button type="button" ng-hide="_id" data-ng-click="Save()" class="btn btn-default" data-dismiss="modal">Save</button>
    <button type="button" ng-show="_id" data-ng-click="Update()" class="btn btn-default" data-dismiss="modal">Update</button>
    <button type="button" data-ng-click="Reset()" class="btn btn-default" data-dismiss="modal">Close</button>
  </div>

В контроллере js у меня есть это: (просто работая над сохранением для начала)

$ scope.Save = function() {

var data =
{
    Problem: $scope.problem
    ,description: $scope.description
    ,resolution: $scope.resolution
    ,images : $scope.file
    ,id :  $scope._id

}; 


    console.log($scope.m_problem._id);
    $http.post("/kbasefull/" + $scope.m_problem._id + "/scriptAdd", data).
      success(function(data) { $scope.m_datalist = data; Reset();})
      .error(function(data) {console.log(data + "failure");});
//}
}

На сервере узла у меня есть следующее:

var multer = require('multer');
var upload = multer({ dest: './public/kbase_img/'});

    app.post('/KBasefull/:m_id/scriptAdd', upload.single('req.body.images'), function(req, res) {
        console.log(req.body.file);
        m_Kbase_data.find( {_id : req.params.m_id}, function(err, kbase_data){
            if (err){
                console.log(err);
            }   
            if (!kbase_data.length){
                console.log("No Kbase Data!");
                res.render('kbase', { Problem : JSON.stringify("") });

            }
            else{
                console.log(kbase_data[0]._id);
                //res.render('kbasefull', { Problem : JSON.stringify(kbase_data[0])});

//              var sampleFile = req.body.file;
//              require("fs").writeFile("./public/kbase_img/out.png", sampleFile.data, 'base64', function(err) {
//                    console.log(err);
//                  });

                console.log(req.body) // form fields
                console.log(req.file) // form files
                res.status(204).end()
            }

        });
    });

Файл записи имеет файл, созданный, но я не могу его прочитать. Кажется, что мультипер ничего не видит.

Мысли?

  • 0
    Я получаю файл в обычной процедуре. В моем console.log (req.body) у меня есть переменная images, которая имеет: images: {'$ ngfDataUrl': 'data: image / png; base64, iVBORw0KGgoAAAANSUhEUgA ......
  • 0
    Я заметил, что на угловой стороне у меня есть имя файла и последнее изменение, и другие вещи, которые я могу видеть. Тем не менее, у меня нет этого на почтовой стороне. Я не думаю, что получаю полную запись.
Теги:

1 ответ

0

Я заработал. Я должен был перейти с экспресса 3, чтобы выразить 4.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню