Загрузка файла Javascript / Node;req.files == нулевой или неопределенный - PullRequest
0 голосов
/ 21 февраля 2019

Таким образом, единственное изменение между использованием промежуточного программного обеспечения express-fileupload заключается в том, что req.files == null вместо undefined (req.files не определено, когда я не использую express-fileupload, я не думаю, что мне нужноиспользуя это хотя?).Очевидно, что серверный скрипт останавливается на excel = req.files.myFile.path;, так как он не может прочитать свойство myFile с нулевым или неопределенным значением.Я в недоумении - я почти уверен, что это проблема с моим сценарием переднего плана, но я не очень хорошо разбираюсь в ajax, и комбинация нативных JS и JQuery может меня испортить?

//Front end:

		var App = {};
		
		App.handleFileUpload = function handleFileUpload(event) {
			var files = event.target.files;
			var myFile = files[0];
			that.sendFile(myFile);
			}		
		$('#fileUpload').on('change', function(event) {
			App.handleFileUpload(event)
			},
		sendFile = function sendFile(file) {
			var uri = 'http://MYIP/getsheet';
			var xhr = new XMLHttpRequest();
			var fd = new FormData();
			xhr.open('POST', uri, true);
			fd.append('myFile', file);
			xhr.send(fd);
			xhr.onreadystatechange = function() {
				if(xhr.readyState == 4 && xhr.status == 200) {
				var log = xhr.responseText;
				makeDivs(JSON.parse(log));
				console.log(log);
				
				}
			}

			});
      
//Server:

const express = require('express');
var app = express();
const path = require('path');
const ce2j = require('convert-excel-to-json');
const moment = require('moment');
const fu = require('express-fileupload');
app.use(fu());
var log;

app.post('/getsheet', function(req, res){
	console.log(req.files);
    excel = req.files.myFile.path;
  	etc...
	<body>
		<input type ="file" name ="excel" id="fileUpload" />

	  <div id = "main"></div>
        
    </body>

Я пробовал как с набором <form enctype>, так и без него, и это не имеет никакого значения (я тоже не думаю, что должно?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...