uploadFile не публикует изображение в файл сервера (PHP) - PullRequest
4 голосов
/ 02 марта 2020

В моем приложении есть плагин cordova camera, который позволяет мне делать снимки, и я могу получить из него URI.

const options: CameraOptions = {
  quality: 100,
  destinationType: this.camera.DestinationType.FILE_URI,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE
};
this.camera.getPicture(options).then(
  imageURI => {

  },
  err => {

  }
);

Затем я использую этот URI для загрузки на свой сервер.

this.http
    .uploadFile(
        'https://example.com/pages/attachments.php, {
            action: 'INSERT'
        }, {},
        'file:///storage/emulated/0/Android/data/io.ionic.starter/cache/1583144250046.jpg',
        'picture'
    )
    .then(
        fileResult => {
            console.log(fileResult);
        },
        err => {

        }
    );

Но я получаю эти ошибки из результата console.log:

Неопределенный индекс: файл в строке 1235

Неопределенный индекс: файл вкл line 1236

Это строки в attachments.php:

// The tmp_name is the name of the temporary file on the server.
$tmp_name = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

Кажется, что $_FILES пусто, но я не уверен почему. Я предполагал, что использование http.uploadFile отправит файл, но я не уверен, почему это не так. Любая помощь?

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Согласно вашему JS коду вы должны использовать $ _FILES ['picture']

Используете ли вы фреймворк PHP? Я бы посоветовал вам сделать это, чтобы сделать загрузку файлов более надежной и безопасной.

0 голосов
/ 03 марта 2020

Кажется, проблема связана с вашим PHP кодом. Проверьте этот документ, я думаю, что file не так. Может быть, вам стоит попробовать picture, потому что вы использовали это имя при загрузке файла? Но я не PHP эксперт.

...