Я пытаюсь сохранить несколько изображений (также только одно) на сервере, из приложения, отправленного nativescript-background-http, на сервер PHP. Желание получить данные в $ _FILES (в lumen $ request-> file ()). Описание файлов в $ _FILES нормальное, но имеет размер 0 и сохраненный файл тоже.
{
"fileToUpload": {
"name": "1537960393957.png",
"type": "image\/png",
"tmp_name": "\/Applications\/MAMP\/tmp\/php\/phpquIq75",
"error": 0,
"size": 0
}
}
Это не рабочий код PHP и NS
PHP:
$uploadedData = [];
$host = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
/** @var UploadedFile $file */
foreach ($request->file() as $key => $file) {
$uploadedFile = $file->move($this->_uploadDIR, $file->hashName());
$uploadedData[] = array(
"name" => $uploadedFile->getFilename(),
"url" => $host . DIRECTORY_SEPARATOR . "uploads" . DIRECTORY_SEPARATOR . $uploadedFile->getFilename()
);
}
return response()->json([
"message" => null,
"code" => SUCCESS,
"data" => $uploadedData
]);
Ваниль (JS)
let session = backgroundHttp.session("images-upload");
this.addHeader("Content-Type", "application/octet-stream");
//this.addHeader("File-name", "meno1.png");
let request = {
url: this.address + apiField,
method: "POST",
headers: this.headers
};
let paramsFiles = [
{name: "test", value: "value"},
{name: "fileToUpload", filename: "file://" + this.body[0].data, mimeType: 'image/png'}
];
return session.multipartUpload(paramsFiles, request);
Задача ещё не решена.
Других решений пока нет …