Задание имени pdf в соответствии с формой регистрации, чтобы следующий пользователь при входе в систему мог видеть свои данные в файле pdf, используя AngularJS и PHP

У меня есть форма регистрации, в которой запрашиваются такие данные, как имя, фамилия, адрес электронной почты и т. Д., И в конце запрашивается загрузка файла PDF. Я не использую какую-либо базу данных, я храню все детали в файле json, используя php на сервере. Я могу хранить данные, а также файл PDF в пути к каталогу, я не могу понять, как мне следует связать PDF с данными пользователя (то есть, как я могу сохранить PDF, чтобы у него было поле в файле JSON, чтобы что, когда в следующий раз пользователь войдет в систему, он сможет увидеть свой PDF-файл).

Ниже приведен файл php для хранения файла pdf:

<?php
  header('Access-Control-Allow-Origin: *');
  header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
  header('Access-Control-Allow-Methods: GET, POST, PUT');

  $userId = $_POST['userId'];
  $type = $_POST['type'];
  $model = array();
  $uploaded = false;
  $found = false;
  $imgDir = 'data/transcripts/';

  $users = json_decode(file_get_contents('../data/studentdata.json'));
  switch ($type) {
    case 'cis300':
      $model = $users->cis300;
      break;

    case 'cis400':
      $model = $users->cis400;
      break;

    case 'cis500':
      $model = $users->cis500;
      break;
  }
  if (isset($_FILES["file"]["name"])) {
    foreach ($model as $key => $user) {
      if ($user->id == $userId) {
        $found = true;
        $temp = explode(".", $_FILES["file"]["name"]);
        $newfilename =  str_replace(' ', '', ($user->firstname . $user->lastname)) . '-' . date('Y-m-d-h-m-s') . '.' . end($temp);
        if (move_uploaded_file($_FILES["file"]["tmp_name"], '../data/transcripts/' . $newfilename)) {
          unlink('../' . $user->tfile);
          $uploaded = true;
          $fileName = str_replace(' ', '', ($user->firstname . $user->lastname)) . $user->year;
          $user->tfile = $imgDir . $newfilename;
          echo json_encode(array('uploaded' => $uploaded, 'user' => $user));
        } else {
          echo json_encode(array('uploaded' => $uploaded, 'user' => array()));
        }
        break;
      }
    }
    if ($found) {
      unlink('../data/studentdata.json');
      file_put_contents('../data/studentdata.json', json_encode($users, JSON_PRETTY_PRINT));
    }
    if (!$found) {
      echo json_encode(array('uploaded' => $uploaded, 'user' => array()));
    }
  }
?>

Ниже находится угловой файл js, в котором я получаю запросы и загружаю функцию:

csel.controller('studentController', function (AppServices, $rootScope, $scope, Upload, $http, $routeParams, $timeout, $location) {

$scope.formdata.tfile = function () {
        if ($scope.forms.registerForm.file.$valid && $scope.formdata.file) {
            $scope.upload($scope.formdata.file);
        }
    };
    $scope.upload = function (file) {
            file.upload = Upload.upload({
                url: $rootScope.baseURL + 'php/uploadT.php',
                data: {
                    file: file,
                    'userId': $scope.formdata.id, 
                    'type': $scope.formdata.type
                },
            });

            file.upload.then(function (response) {
                $timeout(function () {
                    console.log("CAlled in Upload");
                    file.result = response.data;
                });
            }, function (response) {
                if (response.status > 0)
                    $scope.errorMsg = response.status + ': ' + response.data;
            }, function (evt) {
                file.progress = Math.min(100, parseInt(100.0 * evt.loaded / evt.total));
            });
        }

Когда я нажимаю "загрузить файл", файл загружается, однако путь к файлу сохраняется в другом объекте json.

Заранее спасибо!

0 ответов

Другие вопросы по тегам