does the jsp page receive a file ?

Hi all !

Here is my problem :

I have a jsp page that might be called using two different forms, and only one of them may send a file to upload.

My problem is that I have difficulties to detect if the request contains a file or not.

I use

org.apach.commons.fileupload package

Here my code to upload the file :

DiskFileUpload upload =new DiskFileUpload();

List items = upload.parseRequest(request);

and of course it blocks if there is no file in the request.

How can I check if the request contains a file to upload or not ?

thanks !

Vincent

[667 byte] By [Vince75] at [2007-9-30 8:09:23]
# 1
One option would be to have another parameter on the file upload page (set it with a hidden input tag) that you check for before grabbing the file.There may be better ways, but that is what comes to mind off-hand.- K
trumpetinc at 2007-7-2 18:07:33 > top of Java-index,Administration Tools,Sun Connection...
# 2
Have you tried the Servlet API 2.4. I gives you lot of flexibility to handle requests.Regards,Rohan Kamat
Rohan__Kamat at 2007-7-2 18:07:33 > top of Java-index,Administration Tools,Sun Connection...
# 3

I hope The method

IsFile() returbs boolean will tell you whether the re\quest has a file or not

URL: http://linux.com.hk/docs/struts/api/org/apache/struts/upload/MultipartElement.html#isFile

The following API will help you solving your problem

java.lang.Object

|

+--org.apache.struts.upload.MultipartElement

--

public class MultipartElement

extends java.lang.Object

This class represents an element in a multipart request. It has a few methods for determining * whether or not the element is a String or a file, and methods to retrieve the data of the aforementioned element. Text input elements have a null content type, files have a non-null content type.

Author:

Mike Schachter

--

Field Summary

protected java.lang.String contentType

The content type of this element.

protected byte[] data

Deprecated. This should never be used.

protected java.io.File file

The element's data represented in a (possibly temporary) file.

protected java.lang.String fileName

The element's filename, null for text elements.

protected boolean isFile

Whether or not this element is a file.

protected java.lang.String name

The element name.

protected java.lang.String value

The element's text value, null for file elements

Constructor Summary

MultipartElement(java.lang.String name, java.lang.String value)

Constructor for a text element.

MultipartElement(java.lang.String name, java.lang.String fileName, java.lang.String contentType, byte[] data)

Deprecated. Use the constructor that takes an File as an argument as opposed to a byte array argument, which can cause memory problems.

MultipartElement(java.lang.String name, java.lang.String fileName, java.lang.String contentType, java.io.File file)

Constructor for a file element.

Method Summary

java.lang.String getContentType()

Retrieve the content type.

byte[] getData()

Deprecated. Use the getFile method to get a File representing the data for this element

java.io.File getFile()

Get the File that holds the data for this element.

java.lang.String getFileName()

Retrieve the filename, can return null for text elements.

java.lang.String getName()

Retrieve the name.

java.lang.String getValue()

Returns the value of this multipart element.

boolean isFile()

Is this element a file.

void setContentType(java.lang.String contentType)

Set the content type.

void setData(byte[] data)

Deprecated. Use the setFile method to set the file that represents the data of this element

void setFile(java.io.File file)

Set the file that represents this element.

void setFileName(java.lang.String fileName)

Set the file name for this element.

void setName(java.lang.String name)

Set the name for this element.

void setValue(java.lang.String value)

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

contentType

protected java.lang.String contentTypeThe content type of this element.

--

data

protected byte[] dataDeprecated. This should never be used.

The element data.

--

file

protected java.io.File fileThe element's data represented in a (possibly temporary) file.

--

name

protected java.lang.String nameThe element name.

--

fileName

protected java.lang.String fileNameThe element's filename, null for text elements.

--

value

protected java.lang.String valueThe element's text value, null for file elements

--

isFile

protected boolean isFileWhether or not this element is a file.

Constructor Detail

MultipartElement

public MultipartElement(java.lang.String name,

java.lang.String fileName,

java.lang.String contentType,

byte[] data)Deprecated. Use the constructor that takes an File as an argument as opposed to a byte array argument, which can cause memory problems.

--

MultipartElement

public MultipartElement(java.lang.String name,

java.lang.String fileName,

java.lang.String contentType,

java.io.File file)Constructor for a file element.

Parameters:

name - The form name of the element

fileName - The file name of the element if this element is a file

contentType - The content type of the element if a file

file - The (possibly temporary) file representing this element if it's a file

--

MultipartElement

public MultipartElement(java.lang.String name,

java.lang.String value)Constructor for a text element.

Parameters:

name - The name of the element

value - The value of the element

Method Detail

getContentType

public java.lang.String getContentType()Retrieve the content type.

--

getData

public byte[] getData()Deprecated. Use the getFile method to get a File representing the data for this element

Retrieve the data.

--

getFile

public java.io.File getFile()Get the File that holds the data for this element.

--

getName

public java.lang.String getName()Retrieve the name.

--

getFileName

public java.lang.String getFileName()Retrieve the filename, can return null for text elements.

--

getValue

public java.lang.String getValue()Returns the value of this multipart element.

Returns:

A String if the element is a text element, null otherwise

--

setFile

public void setFile(java.io.File file)Set the file that represents this element.

--

setFileName

public void setFileName(java.lang.String fileName)Set the file name for this element.

--

setName

public void setName(java.lang.String name)Set the name for this element.

--

setContentType

public void setContentType(java.lang.String contentType)Set the content type.

--

isFile

public boolean isFile()Is this element a file.

--

setValue

public void setValue(java.lang.String value)

--

setData

public void setData(byte[] data)Deprecated. Use the setFile method to set the file that represents the data of this element

Set the data.

ALL THE BEST

ShivaKatula at 2007-7-2 18:07:33 > top of Java-index,Administration Tools,Sun Connection...