首页 > 解决方案 > Javascript/Node 文件上传;req.files == null 或未定义

问题描述

因此,使用 express-fileupload 中间件之间的唯一变化是 req.files == null 而不是 undefined (req.files当我不使用 express-fileupload 时未定义,但我认为我不需要使用它?)。显然,服务器脚本停止,excel = req.files.myFile.path;因为它无法读取myFilenull 或 undefined 的属性。我在这里不知所措 - 我很确定这是我的前端脚本的问题,但我不太精通 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>设置和不设置,它没有任何区别(我认为它也不应该?)。

标签: javascriptjqueryajaxfileupload

解决方案


推荐阅读