Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best Location for Uploading file [duplicate]

Working on some import process where i need to first upload the file at some location on server and than later on i need to pick the file from this location to import it in to the system. i am just wondering what might be the best place to store the uploaded file. i have few option

1) Can create a folder in the root of tomcat and than can place the upload files there and later on can pick the file for the import process.

File dir = new File(System.getProperty("catalina.base"), "uploads");

is this a good option and weather the above code will work equally in all enviornment

2) i can create an uploads folder undermy application and can access it for file upload and later on for import by using the following code

ServletActionContext.getServletContext().getRealPath("uploads");

your valuable suggestions are needed the only work i need to do is to upload the file and den run the import process for the uploaded files(s) and once import is successfull remove files from this folder to other like processed etc.

like image 245
Umesh Awasthi Avatar asked Dec 28 '10 18:12

Umesh Awasthi


1 Answers

File dir = new File(System.getProperty("catalina.base"), "uploads");

It won't work on environments where catalina.base property is absent. So you need to either document it properly in the installation manual of the webapp to ensure that this property is been set on the server machine in question, or to look for an alternative approach.


ServletActionContext.getServletContext().getRealPath("uploads");

This is not a good choice as permanent storage. Everything will get lost whenever you redeploy the WAR.

Rather store it in a known and fixed path outside your webapp and add its path as <Context> in Tomcat's /conf/server.xml so that it's available online as well.

If you don't want to alter the Tomcat's /conf/server.xml for some reason, then you need to create a servlet which reads the file from disk using FileInputStream and writes it to the OutputStream of the response. You can find here a basic example.

Related questions:

  • Simplest way to serve static files from outside application server
like image 109
BalusC Avatar answered Sep 20 '22 05:09

BalusC