У меня проблема — я не могу отправить загруженный файл (файл кажется пустым) с входных данных во внешнем интерфейсе на мой php-сервер, и я не могу получить доступ к содержимому в «файлах».
Моя задача: создать какую-то форму, когда пользователь сможет выбрать файл * .csv, отправить этот файл на сервер, проанализировать и сохранить данные из * .csv в SQL-таблице и другие вещи …
dataload.component.html:
<div> <input type="file" (change)="doUpload($event)"/> </div>
dataload.component.ts:
import { Component } from '@angular/core';
import { HttpService } from '../http.service';
@Component({
selector: 'app-dataload',
templateUrl: './dataload.component.html',
styleUrls: ['./dataload.component.css'],
providers: [HttpService]
})
export class DataloadComponent {
files: any;
constructor(private http: HttpService) { }
doUpload(event){
let target = event.target || event.srcElement;
this.files = target.files;
console.log ('Files: ',this.files);
const apiURL = 'There is my https://testAPI.php';
this.http.post(apiURL, {'action': 'action','data': this.files})
.subscribe(
data => {
console.log("Done. Response JSON: ",data);
},
error => {
console.log('Error: ', error);
}
);
}
}
testAPI.php
<?php
header ('Content-Type: text/html');
header ('Access-Control-Allow-Origin: *');
header ('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
require_once("includes/connection.php");
$datafile = file_get_contents('php://input');
$obj = json_decode($datafile);
$action = $obj->{'action'};
$data = file_get_contents($obj->{'data'});
$retArr = array(
'text' => "Action = ".$action,
'mess' => 'Data = '.$data
);
echo json_encode(array_values($retArr));
?>
РЕЗУЛЬТАТ:
Когда я выбираю файл (* .csv) в консоли, я вижу, что:
скриншот console.log
Я пытался использовать papaparse и ngx-papaparse, но у меня были проблемы с установкой, я пытался выполнить синтаксический анализ на стороне внешнего интерфейса для перевода в JSON, но не могу получить доступ к содержимому в «this.files», я пытался выполнить синтаксический анализ на стороне сервера, но на стороне сервера такая же проблема …
Помогите мне пожалуйста, я запутался 🙁
Задача ещё не решена.
Других решений пока нет …