How does one go about naming files parsed by Formidable in Node? Currently my files are saving as '7c9d182a9892bb7588b49ea9d364efd0.pdf', I would much prefer the original file names.
Anyone know how to do this?
You can simply change the name of the file by changing the name of the file in the second parameter of move_uploaded_file . $temp = explode(".", $_FILES["file"]["name"]); $newfilename = round(microtime(true)) .
This is how I did it (check out the .on(file'...) function):
// import required modules
var express = require('express');
var formidable = require("formidable"); // used for parsing form data
var fs = require('fs');
// prevent bodyParser from handling multipart forms (ie only handle get and post requests)
delete express.bodyParser.parse['multipart/form-data'];
// create server
var app = express.createServer();
// connect middleware
app.configure(function() {
// creates body object on request object
app.use(express.bodyParser());
app.use(express.methodOverride());
// used to display static files such as css
app.use(express.static(__dirname + '/static'));
});
// enable and define views
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
//******************************
//* create routes
//******************************
// file upload handling
app.get('/photos/new', function(request, response) {
response.render('photos/new');
});
app.post('/photos', function(request, response) {
console.log('in /photos handler');
var form = new formidable.IncomingForm();
form.uploadDir = __dirname + '/static/upload/photos/';
form.on('file', function(field, file) {
//rename the incoming file to the file's name
fs.rename(file.path, form.uploadDir + "/" + file.name);
});
form.on('error', function(err) {
console.log("an error has occured with form upload");
console.log(err);
request.resume();
});
form.on('aborted', function(err) {
console.log("user aborted upload");
});
form.on('end', function() {
console.log('-> upload done');
});
form.parse(request, function() {
response.render('photos/new');
});
});
// start our server
app.listen(8888);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With