You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Peter H." <co...@hotmail.com> on 2003/04/05 16:11:57 UTC

upload and renameto apache-tomcat problem

Hello Tomcat-Community,

I try to figure out a strange but reproduceable error:
Using Apache and Tomcat under windows and maybe linux.

After uploading a file to a temporary dir and renaming (moving) it
to a apache accessible folder i have strange problems...

If i upload a image with the attached servlet and after it accessing the 
image with apache i must wait some seconds to get a succesful renameTo. the 
problem is that if i don't create the temporary image file with java the 
renameTo always succeeds. but the servlet should
have file upload behaviour...

maybe its the FileServletWrapper but uploading multiple times without
accessing the image with apache there is no problem!

ps. The FileServletWrapper is only available as class code...
Any Suggestions?

Thanks
Peter


<code>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

public final class FileServlet
extends HttpServlet {

static public final String TARGET =
"/export/wwwdoc/test.jpg";

public void service(HttpServletRequest req, HttpServletResponse resp) throws 
IOException {
FileServletWrapper request = new FileServletWrapper(req,
new File("/temp"));
File source = null;

if(request.getFileParameter("file") != null) {
source = request.ucdGetFileParameter("file").getFile();
}
PrintWriter writer = resp.getWriter();
writer.write("<HTML>");
writer.write("<BODY>");
writer.write("<FORM NAME=\"main\" ACTION=\"http://127.0.0.1/fileservlet\" 
METHOD=\"post\" ENCTYPE=\"multipart/form-data\">");
writer.write("<INPUT TYPE=\"file\" NAME=\"file\"/>");
writer.write("<INPUT TYPE=\"submit\" VALUE=\"upload\"/>");
writer.write("<hr>");
if(source != null) {
File target = new File(TARGET);
if(target.exists()) {
writer.write("Target file exists<br>");
if(!target.delete()) {
writer.write("Target file delete failed:" + target + "<br>");
return;
}
}
if(source.renameTo(target)) {
writer.write("rename succeeded<br>");
}
else {
writer.write("rename failed<br>");
}
}
writer.write("</FORM>");
writer.write("</BODY>");
writer.write("</HTML>");
}
}
</code>



_________________________________________________________________
Mit dem MSN Messenger eine Reise für 4 Personen nach Barcelona gewinnen – 
jetzt mitmachen! http://www.sweepstakes2003.com/entry.aspx?locationid=15


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


Re: upload and renameto apache-tomcat problem

Posted by jo...@fwd.at.
Hi Peter,

You could also use the Commons FileUpload package of the Jakarta project:
http://jakarta.apache.org/commons/fileupload/index.html

I personally have used the cos.jar package of Jason Hunter as well and it 
has served its purpose fine so far.

Johannes




joe <li...@concrete-it.com> 
05.04.2003 22:16
Please respond to
"Tomcat Users List" <to...@jakarta.apache.org>


To
Tomcat Users List <to...@jakarta.apache.org>
cc

Subject
Re: upload and renameto apache-tomcat problem






hi!

i'm using the oreilly cos multipart package. it's working perfectly and 
you have the source.

see for yourself:
http://www.servlets.com/cos/index.html

joe

Peter H. wrote:

> Hello Tomcat-Community,
>
> I try to figure out a strange but reproduceable error:
> Using Apache and Tomcat under windows and maybe linux.
>
> After uploading a file to a temporary dir and renaming (moving) it
> to a apache accessible folder i have strange problems...
>
> If i upload a image with the attached servlet and after it accessing 
> the image with apache i must wait some seconds to get a succesful 
> renameTo. the problem is that if i don't create the temporary image 
> file with java the renameTo always succeeds. but the servlet should
> have file upload behaviour...
>
> maybe its the FileServletWrapper but uploading multiple times without
> accessing the image with apache there is no problem!
>
> ps. The FileServletWrapper is only available as class code...
> Any Suggestions?
>
> Thanks
> Peter
>
>
> <code>
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import java.util.*;
>
> public final class FileServlet
> extends HttpServlet {
>
> static public final String TARGET =
> "/export/wwwdoc/test.jpg";
>
> public void service(HttpServletRequest req, HttpServletResponse resp) 
> throws IOException {
> FileServletWrapper request = new FileServletWrapper(req,
> new File("/temp"));
> File source = null;
>
> if(request.getFileParameter("file") != null) {
> source = request.ucdGetFileParameter("file").getFile();
> }
> PrintWriter writer = resp.getWriter();
> writer.write("<HTML>");
> writer.write("<BODY>");
> writer.write("<FORM NAME=\"main\" 
> ACTION=\"http://127.0.0.1/fileservlet\" METHOD=\"post\" 
> ENCTYPE=\"multipart/form-data\">");
> writer.write("<INPUT TYPE=\"file\" NAME=\"file\"/>");
> writer.write("<INPUT TYPE=\"submit\" VALUE=\"upload\"/>");
> writer.write("<hr>");
> if(source != null) {
> File target = new File(TARGET);
> if(target.exists()) {
> writer.write("Target file exists<br>");
> if(!target.delete()) {
> writer.write("Target file delete failed:" + target + "<br>");
> return;
> }
> }
> if(source.renameTo(target)) {
> writer.write("rename succeeded<br>");
> }
> else {
> writer.write("rename failed<br>");
> }
> }
> writer.write("</FORM>");
> writer.write("</BODY>");
> writer.write("</HTML>");
> }
> }
> </code>
>
>
>
> _________________________________________________________________
> Mit dem MSN Messenger eine Reise für 4 Personen nach Barcelona 
> gewinnen  jetzt mitmachen! 
> http://www.sweepstakes2003.com/entry.aspx?locationid=15
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>



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



Re: upload and renameto apache-tomcat problem

Posted by joe <li...@concrete-it.com>.
hi!

i'm using the oreilly cos multipart package. it's working perfectly and 
you have the source.

see for yourself:
http://www.servlets.com/cos/index.html

joe

Peter H. wrote:

> Hello Tomcat-Community,
>
> I try to figure out a strange but reproduceable error:
> Using Apache and Tomcat under windows and maybe linux.
>
> After uploading a file to a temporary dir and renaming (moving) it
> to a apache accessible folder i have strange problems...
>
> If i upload a image with the attached servlet and after it accessing 
> the image with apache i must wait some seconds to get a succesful 
> renameTo. the problem is that if i don't create the temporary image 
> file with java the renameTo always succeeds. but the servlet should
> have file upload behaviour...
>
> maybe its the FileServletWrapper but uploading multiple times without
> accessing the image with apache there is no problem!
>
> ps. The FileServletWrapper is only available as class code...
> Any Suggestions?
>
> Thanks
> Peter
>
>
> <code>
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import java.util.*;
>
> public final class FileServlet
> extends HttpServlet {
>
> static public final String TARGET =
> "/export/wwwdoc/test.jpg";
>
> public void service(HttpServletRequest req, HttpServletResponse resp) 
> throws IOException {
> FileServletWrapper request = new FileServletWrapper(req,
> new File("/temp"));
> File source = null;
>
> if(request.getFileParameter("file") != null) {
> source = request.ucdGetFileParameter("file").getFile();
> }
> PrintWriter writer = resp.getWriter();
> writer.write("<HTML>");
> writer.write("<BODY>");
> writer.write("<FORM NAME=\"main\" 
> ACTION=\"http://127.0.0.1/fileservlet\" METHOD=\"post\" 
> ENCTYPE=\"multipart/form-data\">");
> writer.write("<INPUT TYPE=\"file\" NAME=\"file\"/>");
> writer.write("<INPUT TYPE=\"submit\" VALUE=\"upload\"/>");
> writer.write("<hr>");
> if(source != null) {
> File target = new File(TARGET);
> if(target.exists()) {
> writer.write("Target file exists<br>");
> if(!target.delete()) {
> writer.write("Target file delete failed:" + target + "<br>");
> return;
> }
> }
> if(source.renameTo(target)) {
> writer.write("rename succeeded<br>");
> }
> else {
> writer.write("rename failed<br>");
> }
> }
> writer.write("</FORM>");
> writer.write("</BODY>");
> writer.write("</HTML>");
> }
> }
> </code>
>
>
>
> _________________________________________________________________
> Mit dem MSN Messenger eine Reise für 4 Personen nach Barcelona 
> gewinnen  jetzt mitmachen! 
> http://www.sweepstakes2003.com/entry.aspx?locationid=15
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>



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