Solved

File upload path

Posted on 2006-10-19
8
547 Views
Last Modified: 2009-12-16
Hi

Below program is used for file upload. The "File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());"  lines in the code tell where we can save the file.
Problem is file is getting uploaded to temp folder.
I need to change the line so that file will be uploaded to c:\. Can you please help me to change code.

<%@ page import="org.apache.commons.fileupload.*, java.util.List, java.io.File, java.util.Iterator" %>
<%
      
      // first check if the upload request coming in is a multipart request
      boolean isMultipart = FileUpload.isMultipartContent(request);
      
      // if not, send to message page with the error message
      if(!isMultipart){
            request.setAttribute("msg", "Request was not multipart!");
            request.getRequestDispatcher("msg.jsp").forward(request, response);
            return;
      }
      
      // now lets create a handler for the upload request.
      DiskFileUpload upload = new DiskFileUpload();
      
      // parse this request by the handler
      // this gives us a list of items from the request
      List items = upload.parseRequest(request);
      
      // now iterate over this list
      Iterator itr = items.iterator();
      
      while(itr.hasNext()){
      
            FileItem item = (FileItem) itr.next();
            
            // check if the current item is a form field or an uploaded file
            if(item.isFormField()){
                  
                  // get the name of the field
                  String fieldName = item.getFieldName();
                  
                  // if it is name, we can set it in request to thank the user
                  if(fieldName.equals("name"))
                        request.setAttribute("msg", "Thank You: " + item.getString());
                        
            } else {
            
                  // the item must be an uploaded file
                  // save it to disk                  
                  File fullFile = new File(item.getName());                  
                  File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());
                  item.write(savedFile);
            }
      }
      
      // finally send to the msg page
      request.getRequestDispatcher("msg.jsp").forward(request, response);

      
%>
0
Comment
Question by:basirana
  • 5
  • 3
8 Comments
 
LVL 27

Accepted Solution

by:
rrz earned 500 total points
ID: 17767010
> File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());  
That will put the file into your web app's root folder.  If you want to put into  c:\    then try  
File savedFile = new File("c:\\", fullFile.getName());  
or  
File savedFile = new File("c:/", fullFile.getName());  
0
 

Author Comment

by:basirana
ID: 17767707
I have change the line but I am getting error as below.

type Status report

message C:\jboss-4.0.4.GA\server\default\.\tmp\deploy\tmp17003AppWeb-exp.war (Access is denied)

description The requested resource (C:\jboss-4.0.4.GA\server\default\.\tmp\deploy\tmp17003AppWeb-exp.war (Access is denied)) is not available.

Any idea whats wrong. Please let me know if you need other files used in file uploading.
0
 
LVL 27

Expert Comment

by:rrz
ID: 17768118
I don't use jboss. Maybe there is a user listening ?
Anyway, let's go back. Does the code you posted first work ? Does it put the file in your web app's root folder ?
0
 

Author Comment

by:basirana
ID: 17768165
The code I posted works. I have three files but the above code is used for uploading. The bolow 2 codes are 1. is user interface for selecting file in Multipart form. 2. is output page displayed after file gets uploaded.

fileuploaddemo.htm

<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Upload Test</title>
  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body>

      <form name="myform" action="fileuploaddemo.jsp" method="post" enctype="multipart/form-data">
            Specify your name:<br/>
                  <input type="text" name="name" size="15"/><br/>
            Specify your Image:<br/>
                  <input type="file" name="myimage"><br/>
            Specify your File:<br/>
                  <input type="file" name="myfile"><br/><br/>

            <input type="submit" name="Submit" value="Submit your files"/>
      </form>

</body>
</html>

msg.jsp

<%
 
  String msg = (String)request.getAttribute("msg");
 
  if(msg != null)
        out.println("<font size=+1>" + msg + "</font><br/>");
%>

Click <a href="fileuploaddemo.htm">here</a> to go to the upload page.

Please let me know if you need anything more
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 27

Expert Comment

by:rrz
ID: 17768206
>Click <a href="fileuploaddemo.htm">here</a> to go to the upload page.
What is the file path to  fileuploaddemo.htm  ?
0
 
LVL 27

Expert Comment

by:rrz
ID: 17768335
Please show what these print.
<%=request.getContextPath()%>
<%=application.getRealPath("/")%>
0
 

Author Comment

by:basirana
ID: 17773304
when I try to run in WSAD I am getting below error.

*** Starting the server ***
************ Start Display Current Environment ************
WebSphere Platform 5.1 [BASE 5.1.0 b0344.02]  running with process name localhost\localhost\server1 and process id 1340
Host Operating System is Windows XP, version 5.1
Java version = J2RE 1.4.1 IBM Windows 32 build cn1411-20031011 (JIT enabled: jitc), Java Compiler = jitc, Java VM name = Classic VM
was.install.root = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51
user.install.root = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51
Java Home = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51\java\jre
ws.ext.dirs = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/java/lib;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/classes;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/classes;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib/ext;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/web/help;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime;C:/Program Files/IBM/WebSphere Studio/Application Developer/v5.1.1/wstools/eclipse/plugins/com.ibm.etools.webservice_5.1.1/runtime/worf.jar
Classpath = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/properties;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/properties;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib/bootstrap.jar;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib/j2ee.jar;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib/lmproxy.jar;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/lib/urlprotocols.jar;C:/Program Files/IBM/WebSphere Studio/Application Developer/v5.1.1/wstools/eclipse/plugins/com.ibm.etools.websphere.tools.common_5.1.1/runtime/wteServers.jar;C:/Program Files/IBM/WebSphere Studio/Application Developer/v5.1.1/wstools/eclipse/plugins/com.ibm.etools.websphere.tools.common_5.1.1/runtime/wasToolsCommon.jar
Java Library path = C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/bin;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/java/bin;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\runtimes\base_v51/java/jre/bin;C:\Program Files\IBM\WebSphere Studio\Application Developer\v5.1.1\eclipse\jre\bin;.;C:\WINNT\system32;C:\WINNT;c:\Perl\bin;c:\oracle\products\9.2.0.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\WINNT\system32\nls;C:\WINNT\system32\nls\ENGLISH;C:\Program Files\Novell\ZENworks\;C:\j2sdk1.4.2_11\jre\bin;C:\ant\ant\bin;C:\cygwin\bin;T:.;W:.;Z:.
************* End Display Current Environment *************
[10/19/06 9:43:12:458 EDT] 3d197bdd ManagerAdmin  I TRAS0017I: The startup trace state is *=all=disabled.
[10/19/06 9:43:13:833 EDT] 3d197bdd AdminInitiali A ADMN0015I: AdminService initialized
[10/19/06 9:43:15:286 EDT] 3d197bdd Configuration A SECJ0215I: Successfully set JAAS login provider configuration class to com.ibm.ws.security.auth.login.Configuration.
[10/19/06 9:43:15:380 EDT] 3d197bdd SecurityDM    I SECJ0231I: The Security component's FFDC Diagnostic Module com.ibm.ws.security.core.SecurityDM registered successfully: true.
[10/19/06 9:43:15:723 EDT] 3d197bdd SecurityCompo I SECJ0309I: Java 2 Security is disabled.
[10/19/06 9:43:15:739 EDT] 3d197bdd SecurityCompo I SECJ0212I: WCCM JAAS configuration information successfully pushed to login provider class.
[10/19/06 9:43:15:770 EDT] 3d197bdd SecurityCompo I SECJ0240I: Security service initialization completed successfully
[10/19/06 9:43:15:770 EDT] 3d197bdd JMSRegistrati A MSGS0602I: WebSphere Embedded Messaging Client only has been installed
[10/19/06 9:43:23:676 EDT] 3d197bdd CacheServiceI I DYNA0048I: WebSphere Dynamic Cache initialized successfully.
[10/19/06 9:43:27:286 EDT] 3d197bdd JMXSoapAdapte A ADMC0013I: SOAP connector available at port 8880
[10/19/06 9:43:27:317 EDT] 3d197bdd SecurityCompo I SECJ0243I: Security service started successfully
[10/19/06 9:43:27:317 EDT] 3d197bdd SecurityCompo I SECJ0210I: Security enabled false
[10/19/06 9:43:28:880 EDT] 3d197bdd ApplicationMg A WSVR0200I: Starting application: IBMUTC
[10/19/06 9:43:29:973 EDT] 3d197bdd WebContainer  A SRVE0161I: IBM WebSphere Application Server - Web Container.  Copyright IBM Corp. 1998-2002
[10/19/06 9:43:30:005 EDT] 3d197bdd WebContainer  A SRVE0162I: Servlet Specification Level: 2.3
[10/19/06 9:43:30:020 EDT] 3d197bdd WebContainer  A SRVE0163I: Supported JSP Specification Level: 1.2
[10/19/06 9:43:30:411 EDT] 3d197bdd WebContainer  A SRVE0169I: Loading Web Module: IBM Universal Test Client.
[10/19/06 9:43:31:005 EDT] 3d197bdd WebGroup      I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: JSP 1.2 Processor: init
[10/19/06 9:43:31:161 EDT] 3d197bdd WebGroup      I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: SimpleFileServlet: init
[10/19/06 9:43:31:302 EDT] 3d197bdd ApplicationMg A WSVR0221I: Application started: IBMUTC
[10/19/06 9:43:31:302 EDT] 3d197bdd ApplicationMg A WSVR0200I: Starting application: fasApp
[10/19/06 9:43:31:333 EDT] 3d197bdd ApplicationMg E WSVR0101W: An error occurred starting, fasApp
[10/19/06 9:43:31:348 EDT] 3d197bdd ApplicationMg A WSVR0217I: Stopping application: fasApp
[10/19/06 9:43:31:458 EDT] 3d197bdd ApplicationMg A WSVR0220I: Application stopped: fasApp
[10/19/06 9:43:31:552 EDT] 3d197bdd ApplicationMg A WSVR0217I: Stopping application: IBMUTC
[10/19/06 9:43:31:645 EDT] 3d197bdd WebContainer  A SRVE0170I: Stopping Web Module: IBM Universal Test Client.
[10/19/06 9:43:31:661 EDT] 3d197bdd WebGroup      I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: SimpleFileServlet: destroy
[10/19/06 9:43:31:661 EDT] 3d197bdd WebGroup      I SRVE0180I: [IBM Universal Test Client] [/UTC] [Servlet.LOG]: JSP 1.2 Processor:  destroy
[10/19/06 9:43:31:692 EDT] 3d197bdd ApplicationMg A WSVR0220I: Application stopped: IBMUTC
[10/19/06 9:43:32:036 EDT] 3d197bdd WsServer      E WSVR0003E: Server server1 failed to start
com.ibm.ws.exception.RuntimeError
      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:285)
      at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
      at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
      at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
      at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
      at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
      at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
      at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
      at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
      at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
      at java.lang.reflect.Method.invoke(Method.java:386)
      at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
      at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
Caused by: com.ibm.etools.archive.exception.NoModuleFileException: A file does not exist for module element having uri: fasAppApplicationClient.jar
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.checkType(ModuleRefImpl.java:715)
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.initModuleFileFromEAR(ModuleRefImpl.java:270)
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.getModuleFile(ModuleRefImpl.java:247)
      at com.ibm.ws.classloader.ClassGraph.addModule(ClassGraph.java:101)
      at com.ibm.ws.classloader.ClassLoaderManager.initialize(ClassLoaderManager.java:126)
      at com.ibm.ws.classloader.ClassLoaderManager.<init>(ClassLoaderManager.java:103)
      at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:529)
      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
      ... 15 more
---- Begin backtrace for nested exception
com.ibm.etools.archive.exception.NoModuleFileException: A file does not exist for module element having uri: fasAppApplicationClient.jar
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.checkType(ModuleRefImpl.java:715)
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.initModuleFileFromEAR(ModuleRefImpl.java:270)
      at com.ibm.etools.commonarchive.impl.ModuleRefImpl.getModuleFile(ModuleRefImpl.java:247)
      at com.ibm.ws.classloader.ClassGraph.addModule(ClassGraph.java:101)
      at com.ibm.ws.classloader.ClassLoaderManager.initialize(ClassLoaderManager.java:126)
      at com.ibm.ws.classloader.ClassLoaderManager.<init>(ClassLoaderManager.java:103)
      at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:529)
      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
      at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
      at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
      at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
      at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
      at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
      at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
      at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
      at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
      at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
      at java.lang.reflect.Method.invoke(Method.java:386)
      at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
      at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)

[10/19/06 9:43:32:098 EDT] 3d197bdd WsServer      E WSVR0009E: Error occurred during startup

0
 
LVL 27

Expert Comment

by:rrz
ID: 17774732
Sorry, I don't use WSAD. I can't help you with that.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
logging jar 1 106
object methods vs static methods 2 94
Retrieving file from bytes array in spring mvc 8 59
spring example errors 33 259
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
The new Gmail Phishing Scam going around is surprising even the savviest of users with its sophisticated techniques. This attack comes as a nightmare trifecta for email filtering services; sent from a familiar contact, using authentic tone and verbi…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now