commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Cooper <mart...@apache.org>
Subject Re: [commons-file upload] Will not save just the file name
Date Mon, 12 Jan 2004 04:01:53 GMT
On Sun, 11 Jan 2004, Brian Cook wrote:

> On Thu, 8 Jan 2004, Brian Cook wrote:
>
>
>  >> Hi,
>  >>
>  >> I am having a problem with the commons FileUpload package.
>
>
>  >Actually you're not.  You're having a problem with the browsers. The
>  >FileUpload component returns to you exactly what the browser provided >to
>  >it. It doesn't do anything with it at all, and neither should it.
>  >Unfortunately, different browsers behave differently in this respect,
>  >which is why you are seeing file names in some cases and full paths in
>  >others.
>  >
>  >--
>  >Martin Cooper
>
>    Yes I am aware that different browsers return different information.
>   As I mentioned in my post I have a work around for that that I pick up
> from : http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3
>
> It works on my development server(Win2k).  It does not matter which
> browser is used it will find the file name with out the path.  When I
> move it to my production box(RedHat9) the symptom arises, and IE returns
> the entire path.  Both servers are the same version of tomcat, and the
> same version of commons-fileupload-1.0.zip as detailed below.

I guess I don't understand what you're asking. Commons FileUpload is
working as designed, which is to say it is handing to you whatever the
browser handed to it. If you're suggesting that there's a bug in the code
in the article you found on the OnJava site, that's certainly possible,
but that's something you'd need to take up with the author of the article.
(Yes, I'm aware that the author claims that there is a bug in FileUpload
related to this, but he's wrong.)

--
Martin Cooper


>
>  >> It works
>  >> fine on my development work station(Win2k).  I run into a problem with
>  >> Internet Explorer(5.5, 6.0) after I transfer the servlet file to my
>  >> production box(Linux).  Mozilla, Opera, and Safari are all fine, but
>  >> when uploading a file with Internet Explorer it returns the entire
>  >> client side path with the file name.
>  >>
>  >> EXAMPLE :
>  >>
>  >> When uploading the file example.txt the item.getName(); object returns :
>  >> C:\dev\store\rpm\5\example.txt as the file name.
>  >>
>  >> I tried the fix posted on :
>  >> http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3
>  >> with out success.
>  >>
>  >>
>  >> I have included the code and Vital stats below.  Any ideas on what I am
>  >> doing wrong would be great.
>  >>
>  >>
>  >>
>  >> <Vital Stats>
>  >> Java               	: J2SE SDK 1.4.2
>  >> Server OS        	: Red Hat 9.0     2.4.28
>  >> Server Container    	: Tomcat 4.1.29
>  >> IDE            	: Netbeans  3.5.1
>  >> Browsers that fail	: Internet Explorer 5.5, 6
>  >> Browsers that work	: Mozilla 1.4 Opera 6
>  >> Package            	: commons-fileupload-1.0.zip
>  >> </Vital Stats>
>  >>
>  >>
>  >> <Code>
>  >>
>  >> DiskFileUpload incomingData = new DiskFileUpload();
>  >>
>  >>      boolean isMultipart = FileUpload.isMultipartContent(req);
>  >>
>  >>      if(isMultipart==false)         {return;}
>  >>
>  >>      java.util.List items = incomingData.parseRequest(req);
>  >>
>  >>      // Parse the list of everything but the field names
>  >>      java.util.Iterator list = items.iterator();
>  >>
>  >>      // Now that we have a list of ALL of the fields that were POSTed
>  >>      // Start a loop to read though the list one at a time.
>  >>      while(list.hasNext()) {
>  >>
>  >>          // If it is actually a field then call another method to
>  >>          // copy the field value to the aprpreate variable.
>  >>          FileItem item = (FileItem) list.next();
>  >>          if(item.isFormField()) {
>  >>              writeToSessionObject(item.getFieldName(), item.getString(),
>  >>                    session);
>  >>          }                        // Close the test for form field
>  >>
>  >>      	// If the item is not a field then it is assumed to be a file,
>  >>          // and it is written to the disk.
>  >>          else {                   // opens else for field type test
>  >>
>  >>          // This should be the file name, but IE returns
>  >>          // The entire path
>  >>          String itemName = item.getName();
>  >>
>  >>           // Test for and empty file field
>  >>              if(itemName.length()<2)
> {/*orderInfo.FileUploaded=false;*/ }
>  >>
>  >>          else {         // Opens else in readIncommingData
>  >>
>  >>                      // Define the File object that will be used to
>  >>               		    // extract the file.
>  >>                      File fullFile = new File(itemName);
>  >>
>  >>                      // This second File object will actually write the
>  >>                      		    // file to the back up dir.  It will put the
>  >> file                  		    // name from the fullFile object
>  >>                      File savedFile = new File(getServletContext()
>  >>                        .getRealPath(File.separator)+"uploadedFiles"
>  >>                        +File.separator,fullFile.getName());
>  >>
>  >>                      // Write the file to disk
>  >>                      item.write(savedFile);
>  >>
>  >>                      // Save the name of the file that was uploaded
>  >>              	    // in the session object.
>  >>                      session.putValue("fileName",fullFile.getName());
>  >>
>  >>                      // Record in the system log that a file was
>  >>               	    // uploaded and where it was saved
>  >>                      System.out.println("Ok, "+fullFile.getName()
>  >>                      +" was writen to:\n"+savedFile.toString());
>  >>                  }                           // Closes nested else
>  >>               }                              //
>  >>            }                                 //
>  >>
>  >> </Code>
>  >>
>  >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message