Com.oreilly.servlet.multipart writeTo() question
I am trying to write a upload servlet with com.oreilly.servlet.multipart.
The problem I am having is specifiying the name of file on the server's side.
When I looked at the documentation for FilePart.writeTo() ...
com.oreilly.servlet.multipart
Class FilePart
java.lang.Object
|
--com.oreilly.servlet.multipart.Part
|
--com.oreilly.servlet.multipart.FilePart
writeTo
public long writeTo(java.io.File fileOrDirectory) throws java.io.IOException
Write this file part to a file or directory. If the user supplied a file, we write it to that file, and if they supplied a directory, we write it to that directory with the filename that accompanied it. If this part doesn't contain a file this method does nothing.
Returns: number of bytes written
Throws: java.io.IOException - if an input or output exception has occurred.
... I figured all I had to do was supply a file to writeTo(), so that writeTo() would write to that file.
So I modified the example servlet code (DemoParserUploadServlet.java) to do this ...
code:
String outFileName = dirName + "/" + xyz_UpLoadUser + "/" + name + "_" + getTS() + ".dat";
file = new File( outFileName );
size = filePart.writeTo(file);
... and I get the error ...
javax.servlet.ServletException: Supplied uploadDir ./TEST001/FILE_1_20040220085207.dat is invalid
I took a look at DemoRequestUploadServlet.java but that only shows me would to write files to the /tmp directory not how to change the file's name from what the user supplied in the form.
Please help!
Thanks for your reply :)
I just resorted to doing something like this ...
public void init ( ...
dir = new File ( dirName );
public void doPost ( ...
String oldFileName = filePart.getFileName();
String newFileName = dirName + "/" + xyz_UpLoadUser + "/" + name + "_" + getTS() + ".dat";
size = filePart.writeTo(dir);
File oldFile = new File( oldFileName );
File newFile = new File( newFileName );
boolean rc = oldFile.renameTo( newFileName );
Similar Messages
-
Uploading a file using jsp and com.oreilly.servlet lib package
Sorry to bother you but I need your help folks
I am developing an application to pick up files from a database and sent to a specified location on a different system.
I am presently trying to run this code,I have placed this lib package from oreilly which is supposed to encapsulate the usage of file uploads,which is a jar file called cos.jar into C:\Program Files\Java\jdk1.5.0_03\jre\lib\ext folder .I have a jsp page that calls the bean which does the upload and implement the classes in the oreilly package.I am using tomcat 5
[b]the jsp page that acts as the user interface
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Please Choose The File</title>
</head>
<body bgcolor="#ffffff">
<table border="0"><tr>
<form action="Upload.jsp" method="post"
enctype="multipart/form-data">
<td valign="top"><strong>Please choose your document:</strong><br></td>
<td> <input type="file" name="file1">
<br><br>
</td></tr>
<tr><td><input type="submit" value="Upload File"></td></tr>
</form>
</table>
</body>
</html>
this is the jsp page that calls the bean
<jsp:useBean id="uploader" class="com.UploadBean" />
<jsp:setProperty name="uploader" property="dir" value="<%=application.getInitParameter(\"save-dir\")%>" />
<jsp:setProperty name="uploader" property= "req" value="${pageContext.request}" />
<html>
<head><title>file uploads</title></head>
<body>
<h2>Here is information about the uploaded files</h2>
<jsp:getProperty name="uploader" property="uploadedFiles" />
</body>
</html>
[b]this is the bean class
package com;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletRequest;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
import javax.servlet.*;
public class UploadBean {
private String webTempPath;
private HttpServletRequest req;
private String dir;
// private ServletRequest request;
public UploadBean( ) {}
public void setDir(String dirName) {
if (dirName == null || dirName.equals(""))
throw new IllegalArgumentException("invalid value passed to " + getClass( ).getName( )+".setDir");
//webTempPath = dirName;
dir = dirName;
/* public String getDir()
return webTempPath;
public void setReq(ServletRequest request) {
if (request != null && request instanceof HttpServletRequest)
req = (HttpServletRequest) request;
} else {
throw new IllegalArgumentException("Invalid value passed to " + getClass( ).getName( )+".setReq");
public String getUploadedFiles( ) throws java.io.IOException{
//file limit size of 5 MB
MultipartRequest mpr = new MultipartRequest(req,dir,5 * 1024 * 1024,new DefaultFileRenamePolicy( ));
Enumeration enume = mpr.getFileNames( );
StringBuffer buff = new StringBuffer("");
for (int i = 1; enume.hasMoreElements( );i++){
buff.append("The name of uploaded file ").append(i).append(" is: ").append(mpr.getFilesystemName((String)enume.nextElement( ))).append("<br><br>");
}//for
//return the String
return buff.toString( );
} // getUploadedFiles
On running the code I find this error messages
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: javax/servlet/ServletRequest
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.jsp.Upload_jsp._jspService(org.apache.jsp.jsp.Upload_jsp:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NoClassDefFoundError: javax/servlet/ServletRequest
com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:222)
com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:151)
com.UploadBean.getUploadedFiles(UploadBean.java:49)
org.apache.jsp.jsp.Upload_jsp._jspService(org.apache.jsp.jsp.Upload_jsp:63)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
Apache Tomcat/5.5.9
tanksHi,
Looks like you are missing a file from the classpath. Make sure servlet.jar is available in your classpath. Ordinarily files in <tomcat_home>/lib directory should be added automatically. You need to check why it hasn't been added in your case. A good place to start would be the bat files in the bin directory viz startup.bat, catalina.bat etc.
cheers,
vidyut -
1. when use com.oreilly.servlet.MultipartRequest to handle the file upload, can I change the upload file name .
2. how com.oreilly.servlet.MultipartReques handle file upload? do it change to byte ?
what different? if I use the following method?
File uploadedFile = (File) mp.getFile("filename");
FileOutputStream fos = new FileOutputStream(filename);
byte[] uploadedFileBuf = new byte[(int) uploadedFile.length()];
fos.write(data);
fos.close();My questions are
1) when use oreilly package to do file upload , it looks like i line of code is enough to store the upload file in the
file direction.
MultipartRequest multi =
new MultipartRequest(request, dirName, 10*1024*1024); // 10MB
why some example still use FileOutputStream?
outs = new FileOutputStream(UPLOADDIR+fileName);
filePart.writeTo(outs);
outs.flush();
outs.close();
2) can I rename the file name when I use oreilly package? -
hai,
iam designing jsp page where i use thi class i.e.,
import="com.oreilly.servlet.MultipartRequest"
for this iam using j2ee server i istalled jdk and j2ee.
when i run the following code iam getting error " unabe to compile class import="com.oreilly.servlet.MultipartRequest" "
what else should i do
please help me anyone
code is
<%@ page language="java" %>
<%@ page import="java.text.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.servlet.http.HttpSession" %>
<%@ page import="java.util.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.net.*" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.ServletUtils" %>
<%!
String uri="";
Vector files=new Vector();
String pathf="";
%>
<%!
public static String FORM_ACTION = "method";
public static String ACTION_ATTACHFORM = "Attachments";
public static String ACTION_ATTACHFILE = "AttachtoMessage";
public static String ACTION_FILEREMOVE = "fileRemove";
public static String ACTION_SEND = "Send";
%>
<%
pathf=DNet.getDataFilesPath()+"/ActivityManagementNew";
pathf=pathf+"/";
uri=request.getRequestURI();
HttpSession ss=request.getSession(true);
String persno=(String)ss.getAttribute("persno");
String method = request.getParameter(FORM_ACTION);
//System.out.println("method"+method);
if (method ==null) {
else if((method!=null) && (method.equals(ACTION_ATTACHFORM)))
attachForm(request, out, files,0);
else if((method!=null) && (method.equals(ACTION_ATTACHFILE)))
attachFile(request, out);
else if((method!=null) && (method.equals(ACTION_FILEREMOVE)))
removeFile(request, out);
%>
<%! int inc=0; %>
<%!
public void attachForm(HttpServletRequest req,JspWriter out,Vector files,int size)
throws ServletException, java.io.IOException
out.println("<html>");
out.println("<head><LINK href=dmail.css rel=stylesheet>");
out.println("<title> Attach File </title>");
out.println("<Script Language=JavaScript>");
out.println("list=new Array();");
out.println("function putattach(pos,name) {");
out.println(" list[pos]=name; }");
out.println("function listattach() {");
out.println("if((window.opener.document.composeform.list)!=null)");
out.println("window.opener.document.composeform.list.value=list;");
out.println("window.close();}");
out.println("</script>");
out.println("</head>");
out.println("<body bgcolor='#EEEEEE' text='#494949' link='#9966CC' vlink='#009999' alink='#CC0066' ><center>");
out.println("<table>");
out.println("<TR align=middle bgColor=#eeeecc><TD colSpan=7 align=center><FONT class=f> <B>Attachments ");
out.println("</B> </FONT></TD></TR>");
out.println("</table>");
out.println("<form action="+uri+"?method="+ACTION_ATTACHFILE+"&size="+size+" ENCTYPE=multipart/form-data method=post>"+
"<center><table width=400 border=0><tr><td><ol>"+
"<li><p>Click the <b>Browse</b> button to select the file that"+
" you want to attach, or type the path to the file in the box below.<br>"+
"Attach File: <input name=attfile type=file> </p>"+
" </li><li><p>Click the <b>Attach to Message</b> button.<br>"+
" The transfer of an attached file may require 30 seconds to up to 10 minutes.<br>"+
"<center><input type=submit name=method value=\""+ACTION_ATTACHFILE+"\"></center></form></p>"+
"</li> <li><p>Repeat Steps 1 and 2 to attach additional files. Click"+
"the <b>Done</b> button to return to your message.</p></li></ol><br>"+
"<center><Input type=button value=Done onClick=listattach()></center>"+
"</td></tr></table>"+
"<form method=post action="+uri+">"+
"<input type=hidden name=size value="+size+">"+
"<hr width=400><table width=400 border=0>"+
"<tr><td><select name=attachlist size=5 multiple>");
if(files!=null)
for(int i=0;i<files.size();i++)
out.println( "<option value="+i+">"+(String)files.get(i)+"</option>");
out.println("</select>");
out.println("<Script language=JavaScript>");
for(int i=0;i<files.size();i++)
out.println("putattach("+i+", '"+(String)files.get(i)+"')");
out.println("</script>");
out.println("</td><td><input type=hidden name=method value="+ACTION_FILEREMOVE+"><input type=submit value=Remove> </td></tr>");
}else out.println("<option value=-1>-- Message Attachments -- </option></select>");
out.println("<tr><td><b>Current total ="+size+"K</b></td></tr>"+
"<tr><td colspan=2>Each file size cannot exceed 20MB. To remove an attachment,"+
"select the file from the list and click the <b>Remove</b> button. </td>"+
"</tr> </table></form></center>");
out.println("</body></html>");
out.flush();
// out.close();
public void attachFile(HttpServletRequest req,JspWriter out)
throws ServletException, java.io.IOException
HttpSession session=req.getSession();
Vector files=(Vector)session.getValue("files");
int Fsize=0;
try{
String user=(String)req.getSession().getValue("PERSONALNO");
File f=new File(pathf+"/Temp/"+user);
if(!f.exists())
f.mkdir();
MultipartRequest multi =new MultipartRequest(req, pathf+"/Temp/"+user, 20 * 1024 * 1024);
Enumeration efiles = multi.getFileNames();
String filename=null;
Fsize=Integer.parseInt(req.getParameter("size"));
while (efiles.hasMoreElements())
String name = (String)efiles.nextElement();
filename = multi.getFilesystemName(name);
File ft=new File(pathf+"/Temp/"+(String)req.getSession().getValue("PERSONALNO")+"/"+filename);
long size=ft.length();
if(filename!=null)
if(size<1024)
Fsize=Fsize+1;
else
Fsize=Fsize+java.lang.Math.round((float)size/1024);
if(files==null)
files=new Vector(); // to keep track of attached files
files.add(filename);
session.putValue("files",files);
attachForm(req,out,files,Fsize);
catch(Exception e)
e.printStackTrace();
public void removeFile(HttpServletRequest req,JspWriter out)
throws ServletException, java.io.IOException
HttpSession session=req.getSession();
Vector files=(Vector)session.getValue("files");
int j;
int FSize=Integer.parseInt(req.getParameter("size"));
String st[]=req.getParameterValues("attachlist");
String user=(String)req.getSession().getValue("PERSONALNO");
if(st!=null)
for(int i=0;i<st.length;i++)
j=Integer.parseInt(st);
File f=new File(pathf+"/Temp/"+user+"/"+(String)files.get(j));
long s=f.length();
if(s<1024) s=1;
else s= java.lang.Math.round((float)s/1024);
FSize=(int)(FSize-s);
if(files==null)
files=new Vector(); // to keep track of attached files
files.remove(j);
session.putValue("files",files);
f.delete();
if(files.size()==0)
files=null;
File f=new File(pathf+"/Temp/"+user);
f.delete();
attachForm(req,out,files,FSize);
%>WEB-INF/classes or ClassPath?I meant WEB-INF/lib ... not WEB-INF/classes
-
Odd fail with com.oreilly.servlets on tomcat 4.1
I've got a page that uses the com.oreilly.servlets package on tomcat 4.1. It is failing at the point where I first create my MultipartRequest but the error stack doesn't make any reference to the com.oreilly.servlets package, it just says:
root cause
javax.servlet.ServletException: javax/servlet/ServletRequest
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.imageUploader1_jsp._jspService(imageUploader1_jsp.java:102)
and back through the org.apache.jsp stuff.
I definitely have the enctype on the form set up correctly and the same code was working fine on another server running tomcat 3.2. I just cannot seem to find any good reason for it.Alright, here is the source of a page that will fail on my server (but doesn't seem to have a problem on my development box)
<%@page contentType="text/html"%>
<%@page import="org.apache.commons.fileupload.*"%>
<%
try
System.out.println("is it multipart?");
System.out.println( FileUpload.isMultipartContent(request) );
catch (Exception e)
System.out.println("Error caught.<br/>");
System.out.println(e.getMessage()+"<br>");
e.printStackTrace();
%>
<html>
<head><title>Test Page</title></head>
<body>
<p>Multipart test, see catalina.out for more information.</p>
</body>
</html>The error stack, for what it's worth, looks a lot like this:
exception
org.apache.jasper.JasperException: javax/servlet/ServletInputStream
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
root cause
javax.servlet.ServletException: javax/servlet/ServletInputStream
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.imageUploader1_jsp._jspService(imageUploader1_jsp.java:119)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:324)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:395)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Apache Tomcat/4.1.30 -
How to upload more than 100mb in using com.oreilly.servlet package
hi all,
I use com.oreilly.servlet package to upload and i use the following code to upload
MultipartRequest mr = new MultipartRequest(request,"/tmp/saved",0x10000000);My problem is i can't upload more than 25mb, uploads upto 25mb and shows page cannot displayed err in IE,
Pls helpIn the webserver there is most likely a configuration option for the maximum size that a request may have. So search through the manual of your particular webserver on how to change that.
-
URGENT!! where to put com.oreilly.servlet package??
hi all,
i am now using tomcat.
i put the com.oreilly.servlet classes in the following path:
c:\jakarta-tomcat-4.0.3\webapps\temp\web-inf\classes\com\oreilly\servlet\..
and i put my servlet file in the path
c:\jakarta-tomcat-4.0.3\webapps\temp\web-inf\classes\testing.java
i have also put the the cos.jar file in
c:\jakarta-tomcat-4.0.3\webapps\temp\web-inf\lib\cos.jar
but when i compile testing.java, i gives error for import com.oreilly.servlet.*
saying can't resolve symbol
can somebody tell me how can i fix it?
thx a lothi,
are you sure you have set the package com.oreilly.servlet in your system's classpath? -
Com.oreilly.servlet.MultipartRequest from where to download the package
Hi all
From where to download this package.
com.oreilly.servlet.MultipartRequest
and where to copy it so that I can use this package.
VijayWhat does Google tell you? http://www.google.com
-
Com.oreilly.servlet where to get it?
if someone knows what's the above package is all about, then please tell me where one can download it?
Have you try the site servlet.com
-
Change file name with oreilly servlet
I am using oreilly servlet package and I want to change the file name to the file I am uploading, is this possible ?
How ?
Thanks.
here I post the servlet code:
package com.reducativa.sitio.servlets;
* DemoParserUploadServlet.java
* Example servlet to handle file uploads using MultipartParser for
* decoding the incoming multipart/form-data stream
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import com.oreilly.servlet.multipart.*;
public class DemoParserUploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
out.println("Demo Parser Upload Servlet");
File dir = new File("f:/");
if (! dir.isDirectory()) {
throw new ServletException("Supplied uploadDir " + "f:/ " +
" is invalid");
try {
MultipartParser mp = new MultipartParser(request, 10*1024*1024); // 10MB
Part part;
while ((part = mp.readNextPart()) != null) {
String name = part.getName();
if (part.isParam()) {
// it's a parameter part
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue();
out.println("param; name=" + name + ", value=" + value);
else if (part.isFile()) {
// it's a file part
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null) {
// the part actually contained a file
long size = filePart.writeTo(dir);
out.println("file; name=" + name + "; filename=" + fileName +
", filePath=" + filePart.getFilePath() +
", content type=" + filePart.getContentType() +
", size=" + size);
else {
// the field did not contain a file
out.println("file; name=" + name + "; EMPTY");
out.flush();
catch (IOException lEx) {
this.getServletContext().log("error reading or saving file");
}Hi there,
I am facing the same problem that you have stated in your Feb 26, 2002 10:28 AM message regarding "change file name with oreilly servlet", I would like to change the file name to include a unique identifier upon upload, did you ever find a solution to your problem?
Thanks!
Todd
[email protected] -
Oreilly.servlet.MultipartRequest Error
I'm trying to use the oreilly servlet to upload files to my server. I using BEA Weblogic and I'm compiling the servlet via classspath. I use the cos.jar and the servlet.jar to compile my servlet. Everything compiles fine. However, When I try to upload a file, I get this error:
java.lang.NoClassDefFoundError: com/oreilly/servlet/MultipartRequest
at com.jspservletcookbook.UploadServlet.doPost(UploadServlet.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
What I'm I doing wrong. Please help me.Put cos.jar into the WEB-INF/lib directory of your web app.
It needs it at runtime as well as compile time. -
What do I do if wen I go to download an app it comes up with three security questions .wen I press on the third question it does not respond just turned blue n stays blue n won't let me go any further therefor not lettin me download any apps. Thanks
I have decided to dedicate this thread to the wonderful errors of Lion OSX. Each time I find a huge problem with Lion I will make note of it here.
Today I discovered a new treasure of doggie poop in Lion. No Save As......
I repeat. No Save As. In text editor I couldn't save the file with a new extension. I finally accomplished this oh so majorly difficult task (because we all know how difficult it should be to save a file with a new extension) by pressing duplicate and then saving a copy of the file with a new extension. Yet then I had to delete the first copy and send it to trash. And of course then I have to secure empty trash because if I have to do this the rest of my mac's life I will be taking up a quarter of percentage of space with duplicate files. So this is the real reason they got rid of Save As: so that it would garble up some extra GB on the ole hard disk.
So about 20 minutes of my time were wasted while doing my homework and studying for an exam because I had to look up "how to save a file with a new extension in mac Lion" and then wasted time sitting here and ranting on this forum until someone over at Apple wakes up from their OSX-coma.
are you freaking kidding me Apple? I mean REALLY?!!!! who the heck designed this?!!! I want to know. I want his or her name and I want to sit down with them and have a long chat. and then I'd probably splash cold water on their face to wake them up.
I am starting to believe that Apple is Satan. -
i deleted something i should'nt have, when i power on my mac book air, all that comes up is a blinking question mark, what do i do?
Reinstall from Recovery Partition, hold down Command + R at power on
-
Servlet controlled download question
I've written a servlet that will extract my file from the database and prompt the client browser with a "Save As" prompt. So far so good.
The problem I'm having is that for the file name, the browser is using the name of the servlet (say Example.do" as the file name.
So the box shows the following
Filename : Example
File Type:
From: www.examplehost.com
So my question is how to I get the correct file name to show up, and get the file type field populated. I'm trying to get this to work for the IE 5 browsers.
The headers are being set as follows:
response.setContentType("application/x-download; name=\"" + fileName + "\"");
response.setHeader("Content-Disposition","attachment; filename=" + fileName + ";");
Any help would be appreciated. Thanks
SeanThat problem is due to the fact that the browser sets the name of the file equal to the request.
There are two solutions i can imagine :
- Place the file in a public place (Where you have your jsp and such) :
Cons : Anyone that knows the file is there may get it.
A big security error, specially if the file is confidencial.
Pros : The file name will be the correct one.
- Use an applet that connects to the servlet :
Cons : It may take too long to load
Many ppl don't like applets running on they're machine
pros : You may create you own progress bar, with percentage and everything;
You control the time it takes and the speed you wish it to use;
The best of all, You may copy the file into a temp dir and then transfer it to the dest dir with the name you wish or the user wishes.
It's up to you to decide,
Daniel Campelo -
Servlet + JSP + SQL question
I have a servlet that is executing a few queries against a database. I am fowarding the results to a jsp page to display the results. I have been able to do this. My problem is when my query selects more than one field I am unsure on how to read that into an array or something like that. All the results I have done so far have had multiple results but only from one field in the database. Here is my serlvet and jsp code. If some one could tell me how to read multiple field into an array and display them on a jsp page that would be great. Thank you
Servlet
package nnet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.security.Principal;
import java.sql.*;
import java.sql.DriverManager;
* <p>Title: NNET</p>
* <p>Description: Northland Intranet</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: NMI</p>
* @author not attributable
* @version 1.0
public final class home
extends HttpServlet {
//Initialize global variables
//Initialize queries
private static final String USERQUERY =
"SELECT public.tblindividual.firstname as firstname " +
"FROM public.tblloginname " +
"INNER JOIN public.tblindividual ON (public.tblloginname.indlink = public.tblindividual.indid) " +
"WHERE LOWER(public.tblloginname.loginname) = LOWER(?)";
private static final String MAINLINKQUERY =
"SELECT public.nnetsection.name " +
"FROM public.nnetsection " +
"WHERE public.nnetsection.posted = 'true'";
private static final String ANOUNCEMENTQUERY =
"SELECT public.nnetanouncement.anouncement, to_char(nnetanouncement.postdate,'MonthDD, YY') as postdate " +
"FROM public.nnetanouncement " +
"ORDER BY public.nnetanouncement.postdate DESC";
public void init() throws ServletException {
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
Connection con = null;
PreparedStatement stmt = null;
//Initialize Resultset objects
ResultSet namers = null;
ResultSet mainlinkrs = null;
ResultSet anouncementrs = null;
ResultSet anouncementdaters = null;
//Initialize Array Lists
ArrayList mainlinkresults = new ArrayList();
ArrayList anouncementresults = new ArrayList();
String firstnameresult = null;
Principal user = request.getUserPrincipal();
String username = user.getName();
Properties props = new Properties();
InputStream in = getServletContext().getResourceAsStream(
"/WEB-INF/sql.properties");
props.load(in);
in.close();
//get Users login name to pass on
try {
Class.forName(props.getProperty("connection.driver"));
con = DriverManager.getConnection(props.getProperty("connection.url"), props);
stmt = con.prepareStatement(USERQUERY);
stmt.setString(1, username);
namers = stmt.executeQuery();
while (namers.next()) {
firstnameresult = namers.getString("firstname");
//results.add(namers.getString("firstname"))
catch (SQLException ex1) {
catch (ClassNotFoundException ex) {
finally {
if (stmt != null) {
try {
stmt.close();
catch (SQLException e) {
e.printStackTrace();
stmt = null;
if (con != null) {
try {
con.close();
catch (SQLException e) {
e.printStackTrace();
con = null;
//get the main links to pass on
try {
Class.forName(props.getProperty("connection.driver"));
con = DriverManager.getConnection(props.getProperty("connection.url"), props);
stmt = con.prepareStatement(MAINLINKQUERY);
mainlinkrs = stmt.executeQuery();
while (mainlinkrs.next()) {
mainlinkresults.add(mainlinkrs.getString("name"))
catch (SQLException ex1) {
catch (ClassNotFoundException ex) {
finally {
if (stmt != null) {
try {
stmt.close();
catch (SQLException e) {
e.printStackTrace();
stmt = null;
if (con != null) {
try {
con.close();
catch (SQLException e) {
e.printStackTrace();
con = null;
//get the announcements to pass on
try {
Class.forName(props.getProperty("connection.driver"));
con = DriverManager.getConnection(props.getProperty("connection.url"), props);
stmt = con.prepareStatement(ANOUNCEMENTQUERY);
anouncementrs = stmt.executeQuery();
while (anouncementrs.next()) {
anouncementresults.add(anouncementrs.getString("anouncement"));
catch (SQLException ex1) {
catch (ClassNotFoundException ex) {
finally {
if (stmt != null) {
try {
stmt.close();
catch (SQLException e) {
e.printStackTrace();
stmt = null;
if (con != null) {
try {
con.close();
catch (SQLException e) {
e.printStackTrace();
con = null;
request.setAttribute("firstname", firstnameresult);
request.setAttribute("mainlink", mainlinkresults);
request.setAttribute("anouncement", anouncementresults);
RequestDispatcher rd =
request.getRequestDispatcher("home.jsp");
rd.forward(request, response);
//Clean up resources
public void destroy() {
JSP Page
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<html>
<head>
<title>
index
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
-->
</style></head>
<body bgcolor="#008000">
<table width="100%" border="1" cellspacing="0" bordercolor="#000000">
<tr>
<td bgcolor="#FFFFFF"><h1>Welcome to NNET <c:out value="${requestScope.firstname}" /></h1>
</td>
</tr>
</table>
<br>
<table width="100%" border="0" cellspacing="0">
<tr>
<td width="150"><table width="100%" border="1" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF">
<tr>
<td><strong>Main Links </strong></td>
</tr>
<c:forEach var="item" items="${requestScope.mainlink}">
<tr>
<td valign="top"><c:out value="${item}"/></td>
</tr>
</c:forEach>
</table>
<p> </p></td>
<td><table width="100%" border="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td valign="top"><h2>Announcements</h2>
<p>
<c:forEach var="item" items="${requestScope.anouncement}">
<c:out value="${item}" />
</c:forEach>
</p>
</td>
</tr>
</table></td>
<td width="150"> </td>
</tr>
</table>
</body>
</html>OK if you look at the code I pasted above I have doen that. I hav ethat book and it is good. My question is how do I get the data read into a multidemisional array or an arraylist like I am using in the code above so I can access that on the jsp page. Can you give an example. Here is what I want . I have a table called anouncements with 3 fields (ID, name, url) I am returning say 10 results. I want to store them in a single arraylist or multideminsional array and call them on the jsp page. What syntax would I use on the servlet and on the jsp page for this? I know how to do it as seen above when I return only one field with many results from the database. Thank you in advance for any help
Maybe you are looking for
-
Hi; I need to restore the information from disabled iPhone 4 because it went out of battery. I do know the passcode, but the phone is not showing the numbers to dial it. What is important for me is the data and not the phone. Below is the details
-
Help please! my ipod wont sync with my libary anymore..
Can anyone help? - my ipod is only picking up a few songs from my libary yet it worked fine before! My libary has 1702 songs and seems fit and well but its only syncing 630 to the ipod. This has only happenned in the last few weeks - i have downloade
-
How to send BIP report link by mail not the attachment.
Hi, I have a requiment to send the BI Publisher report link by mail.But not to send the report as an attachment. can any one have solution for this requirement.
-
720p or 1080p for LCD TV display?
I'm looking to buy a new LCD TV, around 32-42 inches, for under $600 after taxes (7% sales tax). One thing I want to do is use that TV as a computer display from time to time, usually watching live streaming hockey games. What resolution is recommend
-
Populate SELECT LIST on selecting value in another SELECT LIST
Hello I have two SELECT LIST's 1. SELECT LIST with departments : Created a LOV which has all the departments. 2. SELECT LIST with employees : This has to be dynamic. Based on the value from the first Department SELECT LIST I need to populate the Empl