Node Js Download File From Server

31.12.2020
  1. Nodejs Download File Example
  2. Node Js Download File From Url
  3. Node Js Download File From Server Mac
  4. Open Download File
  5. Download File Manager
  6. Node Js Download File From Server Free
  7. Node Js Download File From Server To Mac
Node.JS static file web server. Put it in your path to fire up servers in any directory, takes an optional port argument.
static_server.js
var http =require('http'),
url =require('url'),
path =require('path'),
fs =require('fs')
port =process.argv[2] 8888;
http.createServer(function(request, response) {
var uri =url.parse(request.url).pathname
, filename =path.join(process.cwd(), uri);
path.exists(filename, function(exists) {
if(!exists) {
response.writeHead(404, {'Content-Type':'text/plain'});
response.write('404 Not Foundn');
response.end();
return;
}
if (fs.statSync(filename).isDirectory()) filename +='/index.html';
fs.readFile(filename, 'binary', function(err, file) {
if(err) {
response.writeHead(500, {'Content-Type':'text/plain'});
response.write(err +'n');
response.end();
return;
}
response.writeHead(200);
response.write(file, 'binary');
response.end();
});
});
}).listen(parseInt(port, 10));
console.log('Static file server running atn => http://localhost:'+ port +'/nCTRL + C to shutdown');

The server will set Content-disposition header to attachment; filename=some-filename.csv and set the data in the body. Sample code from Node.js to download. How to Build a Simple Web Server with Node.js. January 22, 2018. Double-click the file from your browser’s download panel or from your computer’s download folder. The installer will open a. Display or download PDF from node.js server. GitHub Gist: instantly share code, notes, and snippets. Uploading files is an important feature in modern web applications. Web applications allow users to upload their files to the server. This tutorial explores nodejs file upload with MongoDB using multer framework. Files with captions are uploaded to the server, paths, and captions are saved to a MongoDB collection. Node.js HOME Node.js Intro Node.js Get Started Node.js Modules Node.js HTTP Module Node.js File System Node.js URL Module Node.js NPM Node.js Events Node.js Upload Files Node.js Email Node.js MySQL MySQL Get Started MySQL Create Database MySQL Create Table MySQL Insert Into MySQL Select From MySQL Where MySQL Order By MySQL Delete MySQL Drop.

commented Aug 3, 2011

I would like to download files with my browser from my server running with NodeJS. On the server side, to serve the file i have: exports.download = function(req, res) { var filename = '33.jpg'.

Thank you!

commented Aug 31, 2011

likewise on the thank you!

commented Nov 30, 2011

Thank you for making this available

commented Jan 28, 2012

Thank you!

commented Feb 8, 2012

Thanks it helped me a lot.
http://stackoverflow.com/questions/8972937/liferay-6-0-6-jboss-how-can-i-edit-javascript-in-a-portlet-without-constantl/

commented Feb 27, 2012

Node Js Download File From Server

This doesn't set the mim type. You can use the mime module like this https://gist.github.com/1926868

commented Mar 5, 2012

Thanks a lot!

commented Mar 16, 2012

thanks XD

commented Mar 27, 2012

Great stuff, exactly what I was looking for.

commented Mar 28, 2012

You may use the non-static module as well

commented Apr 2, 2012

Thanks for this! :)

commented Apr 10, 2012

Careful! This code is vulnerable to a directory traversal attack.

commented Apr 10, 2012

I'm just using it for a local web preview anyway

commented Jul 1, 2012

I'm just getting started with node.js and backbone.js and this has been perfect for setting up demo apps quickly.

commented Aug 3, 2012

I needed to put up a holding page for a website I was building and this was an awesome lightweight solution. Thanks!

commented Jan 8, 2013

Just what I was looking for. Danke Shoen!

commented Jan 20, 2013

Consider also python -m SimpleHTTPServer 888 or twistd -n web -p 8888 --path .. The former is installed pretty much anywhere where there's Python, the latter is better performing and is bundled with many distributions including Mac OSX - no need for pasting/downloading another file.

commented Jan 21, 2013

Thanks!

commented Feb 11, 2013

So good !

commented Feb 24, 2013

Great!

commented Mar 11, 2013

Thank you, this rocks!

commented Mar 18, 2013

Thanks!

commented Apr 26, 2013

path.exists should be changed to fs.exists

commented Oct 30, 2013

Nice! I typically use

to serve the cwd.

commented Dec 5, 2013

Download

Brilliant solution!

commented Feb 4, 2014

fantastic. love this!

commented Feb 25, 2014

nice, this totally is the javascript spirit of the python SimpleHTTPServer

commented Mar 2, 2014

I dumped in piping because I was using it to transfer larger files. May be slow. gist

commented Apr 9, 2014

Great example to understand

commented Apr 17, 2014

Wow the first one that works for me thank very much for this code!
Well, it works everywhere except in.surprise: IE11 & <

commented Apr 21, 2014

Quick question: does this script ensure that data in higher-level directories is inaccessible via http requests? E.g. I can't request /././././.ssh/id_rsa (just an example) and have it send that data to me?

commented May 9, 2014

@dylantack@Ajedi32 I was concerned about this as well, but after some quick testing it appears that url.parse is sanitizing the requested path. For example, if this node server is running from /home and you try visiting 1.2.3.4:8888/././././.ssh/id_rsa it resolves to /home/.ssh/id_rsa.

commented May 14, 2014

Thanks.

commented May 26, 2014

Great work, Thanks

commented Jun 13, 2014

FYI, if you're serving media files you might want to look at the send module. It will handle large files better, and Partial Content requests (important for HTML5 video).

commented Aug 29, 2014

To be sure to avoid transversal directory attacks without relying on url.parse, one could also do

Also, I would use filename = path.join(filename, 'index.html') instead of filename += '/index.html'. / isn't necessarily the OS separator, or we wouldn't use a path module.

commented Jan 7, 2015

muy bueno, gracias

commented Feb 4, 2015

thanks a lot dude

commented Apr 15, 2015

Many thanks.

Shouldn't the method 'exists' be used with fs instead of path?
On line 12 of the code we have:

This gave me an error and it seemed fine after I replaced it with:

commented Jun 7, 2015

Agree with the last comment, replacing path.exist with fs.exist fixed an error that I did not fully understand. Otherwise, fantastic solution, perfect for beginners :)

commented Jun 23, 2015

yes thanks brandt1871 path.exists is now called fs.exists

commented Jul 17, 2015

Same issue here, path.exists is now called fs.exists

Please fix for future generations :)

commented Aug 24, 2015

Thanks!!!

commented Sep 28, 2015

Please, include package.json so that we could npm install. Thanks!

commented Nov 14, 2015

You saved my day brotha. Thanks :) ~

commented Jan 8, 2016

Minecraft ps3 texture packs download. For those newbies out there, path.exists has been depricated to fs.exists.

commented Jan 23, 2016

thank u

commented May 18, 2016

Long live the queen download game. If anyone is interested in ES6+ version, I've revamped it here.

commented May 23, 2016

Small typo: fs = require('fs') is missing a comma at the end of the line, making port on the next line a global variable.
Thank you for sharing!

commented Jun 9, 2016

Fixed the whole code. Enjoy :)

commented Jul 4, 2016
edited

Hi, Everyone:

Problem: There is a failure in the JavaScript code (server.js) to route a var to the following directory: ./public/index.html. Schweser cfa level 2 2016 free download.

Symptoms: HTTP Error 403.14 - Forbidden.

Request for Support: What is the correct JavaScript to route var to a particular directory?

URL References:

1.) GitHub URL link: https://github.com/CforED/WebSite/blob/master/server.js

2.) Gist URL link: https://gist.github.com/CforED/177a2e73dfb87313576376fc00a2c9f4.js

3.) GitHub URL link to website:
https://github.com/CforED/WebSite/tree/master/public

Hal

commented Aug 24, 2016

I created a new one that handles MIME types and uses ES6+

commented Feb 3, 2017

Got an error with path.exists, changed it to fs.exists and the snippet worked fine.

commented Feb 28, 2017

@kovid-rathee I ran in to the same issue and your solution worked!

commented Mar 28, 2017

Hey, guys what do you think about this article?
he best Node.js framework for your project: Express.js, Koa.js or Sails.js is express js the best framework for Node js?

commented Jun 14, 2017

Awesome! I am new to Node.js and was trying to figure out how to configure this.This worked with a minor update as givne in another post creationix/howtonode.org#88
Thank you very much!

commented Jun 26, 2017

ty. min req, what i was after

commented Oct 31, 2017

Nodejs Download File Example

path.exists has been deprecated. If you want a sync check then

commented Oct 31, 2017

Node Js Download File From Url

even better how about the handler's fs stuff all async with callbacks

Node Js Download File From Server Mac

commented Apr 19, 2018

Open Download File

Thanks a lot :)

commented May 6, 2018

Download File Manager

Thanks a lot, but it can be hijacked

commented Jun 10, 2018

Node Js Download File From Server Free

This is insecure, someone can request /./././etc/shadow or similar to read any file they want.

Node Js Download File From Server To Mac

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment