У меня есть приложение ionic 3, в котором я использую родную ионную камеру и плагины для передачи файлов, чтобы сделать снимок и отправить его в мой Node.js / Express API для хранения файлов изображений.
На моем сервере я использую 'multer'.
Кажется, что все работает, но когда я пытаюсь загрузить изображение, я получаю следующую ошибку:
2018-06-10 10:05:25.052951-0700 SynctupV3[3058:1625890] CDVWKWebViewEngine: handleStopScroll
2018-06-10 10:05:25.601142-0700 SynctupV3[3058:1626144] WriteStreamError domain: 0 error: 0
2018-06-10 10:05:25.605004-0700 SynctupV3[3058:1626399] File Transfer Finished with response code 413
2018-06-10 10:05:25.755113-0700 SynctupV3[3058:1626399] FileTransferError {
body = "<html>
\n<head><title>413 Request Entity Too Large</title></head>
\n<body bgcolor=\"white\">
\n<center><h1>413 Request Entity Too Large</h1></center>
\n<hr><center>nginx/1.10.3 (Ubuntu)</center>
\n</body>
\n</html>
Моя реализация мультера довольно проста:
var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({dest:'fileuploads/'});
var constants = require('./helpers/constants');
router.route
.post('/', upload.any(),function(req, res, next){
res.send(req.files);
})
module.exports = router;
Вот так выглядит моя передача файлов со стороны пользовательского интерфейса:
uploadImage(){
let loader = this.loader.create({
content: 'uploading...'
});
loader.present();
const fileTransfer : FileTransferObject = this.transfer.create();
var random = Math.floor(Math.random() * 100);
let options: FileUploadOptions = {
fileKey: 'photo',
fileName: 'myimage_' + random + '.jpg',
chunkedMode: false,
httpMethod: 'post',
mimeType: 'image/jpeg',
headers:{
Connection: "close"
}
}
fileTransfer.upload(this.myPhoto, this.globals.API_ENDPOINT + 'uploads', options)
.then((data)=> {
alert('Success');
loader.dismiss();
}, (err)=>{
alert(err);
loader.dismiss();
})
}
Может кто-нибудь подсказать, на что я могу посмотреть?