Так что я пытаюсь настроить довольно простое приложение в Heroku, используя Node JS, и я не могу понять, как заставить метод загрузки действительно работать, поскольку всякий раз, когда я загружаю файл, heroku просто добавляет / загрузить в конец URL. Вы можете проверить ошибку здесь, просто загрузив файл и нажав «Отправить»:
https://keywordgen.herokuapp.com/
Код HMTL, который я использую для формы:
<form method="POST" action="/upload" enctype="multipart/form-data">
<input type="file" name="keywords"/>
<button type="submit">Upload</button>
Код узла JS для обработки указанного файла:
var fs = require('fs'),
path = require('path'),
express = require('express'),
formidable = require('formidable');
var app = express();
var port = 3000;
var output = path.resolve(__dirname, '../keygen_files');
console.log('Output directory: ', output);
// app.use(express.bodyParser());
app.use(express.static(__dirname + '/html'));
app.get('/', function(req, res) {
res.render('index.html');
});
app.post('/upload', function(req, res) {
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
var newpath = path.resolve(output, files.keywords.name);
console.log('Temp file: ' + files.keywords.path);
fs.rename(files.keywords.path, newpath, function (err) {
if (err) {
res.send('Cannot upload file');
} else {
readFile(newpath, res);
}
});
});
});