Question

Upload File Using Swing

Asked by: msriyas

Hi all,

I'm interested in creating a GUI in Java Swing that allows users to upload files to a web server.  I can only use Java/Java Swing, Java servlets allowed and no JSP.  Also my http server does not support FTP.

Is it possible to create such a tool using the URL and URLConnection classes in Java or should I be looking in another direction?

Could anyone Please send me the Code Snippet which is related to above criteria.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-01-22 at 01:40:19ID24073356
Tags

Upload

,

File

,

Swing

Topics

Web Site Statistics Software / WebTrends

,

Java AWT & Swing

,

Java Application Servers

Participating Experts
2
Points
500
Comments
7

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Jfc Swing & Servlets.
    Hi Team, I need an online tutorial/ sites for Jfc Swing, Servlets. Pl. can u give me some websites for building swing applications.
  2. swing versus jsp !
    for the look & feel which is better the Japplet or the jsp ?? it's a inventory application with back end as mysql if swing then y is the Japplet is better than Jsp?? are there any benefits of Jsp against japplets ??
  3. Swings-jsp-servlets
    Hi! I'm a bit confused.When to use swings and when to use jsp or servlets.I know that for security purpose we are using JApplets and all.We can implement security using servlets also.Please clear my doubt. Regards. Vijaya.
  4. Uploading Files to a Web Server using Swing
    Hi, I'm interested in creating a GUI in Java Swing that allows users to upload files to a web server. I can only use Java/Java Swing, no JSP or Java servlets allowed. Also my http server does not support FTP. Is it possible to create such a tool using the URL and URLConne...
  5. hibernate and swing
    I have used jsp, mysql db, and hibernate to write a small application before. my question: Is is possible to use hibernate as middleware, in a simple Swing, database application? or hibernate can only be used with webapps.

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: ali_pakkanPosted on 2009-01-22 at 05:18:44ID: 23438995

 

by: bluebelldiscoveryPosted on 2009-01-22 at 06:52:29ID: 23439769

You can consist solution using servlets.

User will select the file to be upload using a form.
Servlet will save upload file to server.

Min HTML Code
      <form method="post" action="/ypurwebapp/Save2File" enctype="multipart/form-data">
            <input name="file" type="file">
            <input name="submit" type="submit" value="Submit">
      </form>

Servlet code in Code Snippet

package expertexchange.servlet;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.*;
 
public class Save2File extends HttpServlet
{
    static final long serialVersionUID = 0L;
 
	public void init(ServletConfig config) throws ServletException
	{
		super.init(config);
	}
 
	public void destroy()
	{
		super.destroy();
	}
 
 
	public void saveImage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		try
		{
			PrintWriter out = response.getWriter();
 
			// save upload file
			ServletFileUpload upload = new ServletFileUpload();  // Create a new file upload handler
			FileItemIterator iter = upload.getItemIterator(request);  // Parse the request
			while (iter.hasNext())
			{
				FileItemStream item = iter.next();
				String name = item.getFieldName();
	
				if( name.equals("file") && !item.isFormField())
				{
					String saveFile = "c:/"+item.getName();
					String contentType = item.getContentType();
					byte[] buffer = new byte[1024];
					FileOutputStream fileStream = new FileOutputStream(saveFile);
					InputStream stream = item.openStream();
					int len = 0;
					while(true)
					{
						len = stream.read(buffer);
						if(len < 0)
							break;
						fileStream.write(buffer, 0, len);
					}
					stream.close();
					fileStream.flush();
					fileStream.close();
					
					out.println("File save in:"+saveFile);
				}
			}
   		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
 
 
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		try
		{
			boolean isMultipart = ServletFileUpload.isMultipartContent(request);
			if(isMultipart)
				saveImage(request, response);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
 
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		doGet(request, response);
	}
}

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:

Select allOpen in new window

 

by: msriyasPosted on 2009-01-26 at 23:54:03ID: 23474331

Here How do you call that form tag from java class. And Only if we use jsp we would use form tag. But in my application Java Swing GUI has been used to browse the file. After browsing the file I'm getting File object from the actioListener. With that File Object I'm doing some validation. After that I'm calling one function to Upload into Server. Assume that there is no HTTP request in that class. Please tell me how to connect to the server and upload the file in particular location in the server..

 

by: bluebelldiscoveryPosted on 2009-01-27 at 22:34:26ID: 23483959

Try ClientHttpRequest from Vlad Patryshev.

See example here
http://www.devx.com/Java/Article/17679/1954

Download Source here
http://www.devx.com/assets/sourcecode/7315.zip

 

by: msriyasPosted on 2009-01-27 at 23:01:28ID: 23484040

In my application i want to upload the Xl file without using FTP and JSP calls. Here I have attached formatted code. From Swing I'm getting File object as "XlFile". And I'm Validating that File object. After that I'm calling copytoCommonLoc(File xlFile) function to upload file to serverI'm creating Http request uploading the file. Could anyone suggest how to do that.

Creteria.
1. There is no Httprequest in the class. We have to create a manual request by MyHttpServletRequest class. Please see the attached file
2. For UploadServlet we are verifying the request is multipart request. How to get that without JSP.
3. Even if we are using JSP. It Should be called silently and Auto submit should exist to Form multipart request.

Regards
Riyas M S

public class DataLoader extends GenericDialog implements ActionListener {
 
	private static final long serialVersionUID = 4119297957680235636L;
 
	protected Frame frmDataLoad;
 
	//protected GridBagConstraints c;
 
	protected JTextField fieldUploadFile;
 
	protected JLabel labelUploadFile;
 
	protected JButton browseBtn, submit;
 
	protected JFileChooser jDataFile;
 
	protected File XLfile;
 
	protected DataLoaderCmd call;
 
	protected JButton saveBtn;
 
	protected JButton cancelBtn;
 
	protected Registry reg;
 
	String strExt;
 
	ArrayList failedRows;
 
	String failure;
 
	/**
	 * @param cmd
	 * @param parent
	 * @param context
	 * @param type
	 */
	public DataLoaderDialog(DataLoaderCmd cmd, Frame parent,
			JamContext context, int type) {
		super(parent, context, type, "DataLoader");
		frmDataLoad = parent;
		//c = null;
		fieldUploadFile = null;
		labelUploadFile = null;
		browseBtn = null;
		submit = null;
		jDataFile = null;
		XLfile = null;
		strExt = null;
		call = cmd;
		reg = null;
		failedRows = null;
		failure = "";
 
		setCenterPanel();
		addWindowListener(new WindowAdapter() {
			public void windowActivated(WindowEvent e) {
			}
		});
	}
 
	/**
	 * Setcenterpanel Method that displays the dialog
	 */
	public void setCenterPanel() {
		/*
		 * Get the Registry having Resouce Bundle
		 */
		try {
			reg = Registry.getRegistry(this);
		} catch (Exception e) {
			JOptionPane.showConfirmDialog(frmDataLoad, e.getMessage());
			return;
		}
 
		/*
		 * Set the dialog components and show the panel to the user
		 */
		// c = new GridBagConstraints();
		labelUploadFile = new JLabel("Upload File");
		labelUploadFile.setFont(getButtonFont());
		fieldUploadFile = new JTextField();
		fieldUploadFile.setPreferredSize(new Dimension(150, 20));
		browseBtn = new JButton("Browse...");
		submit = new JButton("Submit");
		jDataFile = new JFileChooser();
		failedRows = new ArrayList();
 
		centerPanel.setLayout(new FlowLayout());
		centerPanel.add(labelUploadFile);
		centerPanel.add(fieldUploadFile);
		centerPanel.add(browseBtn);
		centerPanel.add(submit);
		centerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 20, 20));
 
		browseBtn.addActionListener(this);
		submit.addActionListener(this);
	}
 
	/*
	 * (non-Javadoc)
	 * 
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 * 
	 * Actionperformed
	 * 
	 * Method which will be called when submit or cancel button is clicked.
	 */
	public void actionPerformed(ActionEvent ae) {
		/*
		 * If the button clicked is browse button then show the file chooser
		 * dialog
		 */
		if (ae.getSource() == browseBtn) {
			int result = jDataFile.showDialog(frmDataLoad, "select");
			if (result == JFileChooser.APPROVE_OPTION) {
				XLfile = jDataFile.getSelectedFile();
				fieldUploadFile.setText(XLfile.getName());
				strExt = getExtension(XLfile);
			}
		}
		/*
		 * If the button clicked is the submit button then validate the provided
		 * file and type and if it is XL sheet then go ahead validating the
		 * data.
		 */
		if (ae.getSource() == submit) {
			if (XLfile == null) {
				/*
				 * If no XL file has been selected then show an error message
				 */
				JOptionPane.showMessageDialog(frmDataLoad,
						"PLS ENTER AN EXCEL FILE");
			}
 
			/*
			 * If the file is an XL then proceed with validation of XL and place
			 * the file for migration
			 */
			if (strExt != null && strExt.equals("xls")) {
				try {
					/*
					 * Validate the XL file
					 */
					// String opptyId =					
 
					try {
						/*
						 * If the XL file is valid, then copy the file to the
						 * remote location, which will later be picked up by the
						 * dataloader
						 */
						copytoCommonLoc(XLfile);
						JOptionPane.showMessageDialog(frmDataLoad,
								"selected XL file " + XLfile.getName()
										+ " has been kept for import",
								"DATALOADER", JOptionPane.INFORMATION_MESSAGE);
						dispose();
					} catch (Exception e1) {
						JOptionPane.showMessageDialog(frmDataLoad, e1
								.toString(), "Error while saving file",
								JOptionPane.ERROR_MESSAGE);
					}
					// JOptionPane.showMessageDialog(frmDataLoad,"opptyId
					// is"+opptyId);
				} catch (Exception e) {
					System.out.println("Errors in file");
					/*
					 * In case of any error during validation, the error will be
					 * thrown. The thrown error will be shown in a seperate
					 * dialog.
					 */
					e.printStackTrace();					
					failedRows.clear();
				}
			}
			if (strExt != null && !strExt.equals("xls")) {
				JOptionPane.showMessageDialog(frmDataLoad,
						"ENTER ONLY EXCEL FILE");
			}
		}		
		if (ae.getSource() == cancelBtn) {
			dispose();
		}
	}
 
	/**
	 * @param xlfile
	 * @return
	 * @throws Exception
	 *             This method performs the actual validation on the XL file
	 *             provided as input. If the XL is invalid i.e. failed due to
	 *             some wrong/empty data then the method throws exception.
	 */
 
	public boolean copytoCommonLoc(File xlFile) throws Exception {		
		boolean done = false;
        String url = "http://tcsdevsvr:8080/tcr/ugs/tc/req/installs/servlets/UploadServlet";
        String CONTENT_BOUNDARY = "ABD07xdF";    	
		
        String file_name = xlFile.getName();
        String file_data = readFile(xlFile);
        //StringBuffer response = new StringBuffer("");
 
        OutputStream os = null;
        //BufferedReader in = null;
        HttpURLConnection conn = null;
 
        try{
            URL serverURL = new URL(url);
            // connect to server
            URLConnection uc = serverURL.openConnection();
            conn = (HttpURLConnection) uc;
            conn.setAllowUserInteraction(true);
            conn.setInstanceFollowRedirects(true);
            // set connection as POST
            conn.setRequestMethod("GET");
            conn.setDoOutput(true); // turns it into a post                        
            // setup headers
            conn.setRequestProperty(
                "Content-Type",
                "multipart/form-data; boundary=" + CONTENT_BOUNDARY);
 
            conn.setRequestProperty("Accept-Language", "en-us");
            conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
 
            conn.setRequestProperty("CACHE-CONTROL", "no-cache");
 
            os = conn.getOutputStream();
 
            String request = 
                "--"
                + CONTENT_BOUNDARY
                + "\r\n"
                + "Content-Disposition: form-data; name=\"upfile\"\r\n\r\n"
                + file_name
                + "\r\n"
                + "--"
                + CONTENT_BOUNDARY
                + "\r\n"
                + "Content-Disposition: form-data; name=\"upfile\"; filename=" 
                +file_name
                + "\r\nContent-Type: multipart/form-data\r\n\r\n"
                + file_data  //file is read into a string here, is it OK? But  no other choose.
                + "\r\n"
                + "--"
                + CONTENT_BOUNDARY
                + "\r\n";
            
            String Content_Type = "multipart/form-data; boundary=" + CONTENT_BOUNDARY;
            System.out.println("DEBUG: Sending the following request:\n\r" + request);
            System.out.println("DEBUG: Sending the post request...\n\r");
            os.flush();
            byte[] req = request.getBytes();
            MyHttpServletRequest request1 = new MyHttpServletRequest(req,Content_Type);                               
                        
    		System.out.println("request1 " +request1);
    		UploadServlet upload = new UploadServlet();
    		upload.doPost(request1);            
            os.close();
            os = null;
            conn.disconnect();
            conn = null;
        } catch (Exception e) {
	    	e.printStackTrace();
	    }
		return done;
 
	}
 
-------------------------------------------------------------------------------------------------
uploadServlet .java
-------------------------------------------------------------------------------------------------
 
public class UploadServlet extends HttpServlet implements ResponseHandler, Constant{
 
	public void doPost(HttpServletRequest request) throws ServletException, IOException { 
 
		boolean isMultipart = ServletFileUpload.isMultipartContent(request);
		if (!isMultipart) {
		} else {
			FileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload upload = new ServletFileUpload(factory);
			upload.setSizeMax(1000000000);
			List items = null;
			try {
				items = upload.parseRequest(request);
			} catch (FileUploadException e) {
				e.printStackTrace();
			}
			Iterator itr = items.iterator();
			while (itr.hasNext()) {
				FileItem item = (FileItem) itr.next();
				if (item != null){
					if (item.isFormField()) {
					} else {
						try {
							String itemName = item.getName();
							String location = "/export/home/tcradm/CandEMig/";
						   	int index = itemName.lastIndexOf("\\")+1;
						   	String fileName = itemName.substring(index, itemName.length());
						   	System.out.println("File Name: "+fileName);							   				   						   	
							GenericServlet config = null;
							File savedFile = new File(location+fileName);
							item.write(savedFile);  				
							System.out.println("<tr><td><b>Your file has been saved at the loaction:"+location+fileName);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				}
			}
		}
	}
 
	public void generateResponse(HttpServletRequest arg0, HttpServletResponse arg1, RequestContext arg2) throws RequestHandlerException {
		// TODO Auto-generated method stub
		
	}
 
	public void init(ServletContext arg0, ParameterReader arg1, ApplicationContext arg2) {
		// TODO Auto-generated method stub
		
	}	
 
}
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:

Select allOpen in new window

 

by: bluebelldiscoveryPosted on 2009-01-28 at 00:08:19ID: 23484392

Client side code
------------------
To upload a file from Swing the shortest possible code
in copytoCommonLoc(XLfile) can be

void copytoCommonLoc(File XLfile) throws Exception
{
  ClientHttpRequest client = new ClientHttpRequest("http://127.0.0.1/yourwebapp/Save2File");
  client.setParameter("file", XLfile);
  client.connect();
  client.post();
}
You have to include "ClientHttpRequest" class



Server side code
-------------------
I assume you have the facility of Servlet.
So we will use servlet to save the filestream.
Apache Fileupload package is also needed.

I have hardcode it to save in c:\\ you might need to change this.
      String saveFile = "c:/"+item.getName();

(See Code Snippet)


package expertexchange.servlet;
 
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.*;
 
public class Save2File extends HttpServlet
{
    static final long serialVersionUID = 0L;
 
	public void init(ServletConfig config) throws ServletException
	{
		super.init(config);
	}
 
	public void destroy()
	{
		super.destroy();
	}
 
 
	public void saveImage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		try
		{
			PrintWriter out = response.getWriter();
 
			// save upload file
			ServletFileUpload upload = new ServletFileUpload();  // Create a new file upload handler
			FileItemIterator iter = upload.getItemIterator(request);  // Parse the request
			while (iter.hasNext())
			{
				FileItemStream item = iter.next();
				String name = item.getFieldName();
	
				if( name.equals("file") && !item.isFormField())
				{
					String saveFile = "c:/"+item.getName();
					String contentType = item.getContentType();
					byte[] buffer = new byte[1024];
					FileOutputStream fileStream = new FileOutputStream(saveFile);
					InputStream stream = item.openStream();
					int len = 0;
					while(true)
					{
						len = stream.read(buffer);
						if(len < 0)
							break;
						fileStream.write(buffer, 0, len);
					}
					stream.close();
					fileStream.flush();
					fileStream.close();
					
					out.println("File save in:"+saveFile);
				}
			}
   		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
 
 
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		try
		{
			boolean isMultipart = ServletFileUpload.isMultipartContent(request);
			if(isMultipart)
				saveImage(request, response);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
 
	}
 
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		doGet(request, response);
	}
}
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:

Select allOpen in new window

 

by: msriyasPosted on 2009-01-28 at 02:46:32ID: 31537592

Excellent and Thanks a lot bluebelldiscovery.

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...