Hrm, disturbing... but it might be possible to do some DOM hacking on the client to set an input type="hidden" flag that inputFile could check. I'll have a look.
-- Adam On 7/27/07, Volker Weber <[EMAIL PROTECTED]> wrote: > Hi, > > there is no chance on the server to distinguish between an empty file and a > non existing file. In FF and IE the generated request is the same. > > see also > http://www.nabble.com/-FileUpload--Detecting-empty-file-vs.-bad-path-t2122968.html#a5888362 > > The only we can do on the server is checking the filename, an uploaded > file has a filename. > > > Regards, > Volker > > > > 2007/7/26, Piotr Pikusa <[EMAIL PROTECTED]>: > > Yes there is a contentType of file type not recognized by server. The > > problem is, that InputFile doesn't return null if file doesn't exist. What > > is more UploadFile dosen't have a method to check it. So I can even get > > InputStream from UploadFile object with length = 0. There is no way to > > differ an empty file from not existing file. So I wonder if it is a bug. > > > > -----Original Message----- > > From: Volker Weber [mailto:[EMAIL PROTECTED] > > Sent: Thursday, July 26, 2007 12:51 PM > > To: MyFaces Discussion > > Subject: Re: [Trinidad] How to check if file exists using InputFile > > compon ent? > > > > > > Hi, > > > > is there a contentType if the file does not exists? > > > > > > Regards, > > Volker > > > > 2007/7/26, Piotr Pikusa <[EMAIL PROTECTED]>: > > > Thank you for reply. Unfortunately your method doesn't work with > > > org.apache.myfaces.trinidad.model.UploadedFile object returned by > > InputFile. > > > UploadFile has a method getFilename() which returns name given by user. It > > > still doesn't check if file exists, so it is not a name of real file. So > > the > > > problem still isn't solved. > > > > > > -----Original Message----- > > > From: Volker Weber [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, July 26, 2007 11:40 AM > > > To: MyFaces Discussion > > > Subject: Re: [Trinidad] How to check if file exists using InputFile > > > compon ent? > > > > > > > > > Hi Piotr, > > > > > > i don't know the tomahawk InputFile component, but maybe you can check > > > the uploaded filename? > > > > > > In tobago we check the filename to determine if a file was uploaded: > > > > > > if (file == null || file.getName().length() == 0) { > > > addErrorMessage(facesContext); > > > setValid(false); > > > } > > > > > > > > > Regards, > > > Volker > > > > > > > > > 2007/7/26, Piotr Pikusa <[EMAIL PROTECTED]>: > > > > In many toutorials about InputFile component (e.g on Oracle and Trinidad > > > > sites) there is if instruction to check if uploadFile is not null. But > > it > > > > would never be null, event if the file doesn't exist. Is it a bug in > > > > compoment? Is there any way to check file existence using InputFile > > > > component? > > > > > > > > > > > > -----Original Message----- > > > > From: Piotr Pikusa [mailto:[EMAIL PROTECTED] > > > > Sent: Wednesday, July 25, 2007 3:10 PM > > > > To: 'MyFaces Discussion' > > > > Subject: RE: [Trinidad] How to check if file exists using InputFile > > compon > > > > ent? > > > > > > > > > > > > Unfotunately not. If the existing file is empty the getLength() method > > > > returns 0 too. So the problem isn't still solved. > > > > > > > > > > > > Matthias Wessendorf wrote: > > > > > > > > hi piotr, > > > > > > > > the UploadedFile interfaces has a getLength() method > > > > > > > > it's 0, when the file isn't there.. > > > > > > > > -M > > > > > > > > On 7/25/07, Piotr Pikusa <[EMAIL PROTECTED]> wrote: > > > > > Hey! > > > > > > > > > > As it is mentioned in the subject I wonder if there is any possibility > > > to > > > > > check file existence. > > > > > I got this code on my jsp page: > > > > > > > > > > [code] > > > > > > > > > > <tr:inputFile > > > > > required="true" > > > > > rendered="true" > > > > > label="Load File:" > > > > > value="#{backingBean.file}" > > > > > /> > > > > > <af:commandButton > > > > > text="#{"Button"}" > > > > > action="#{backingBean.importFile}" /> > > > > > > > > > > [/code] > > > > > > > > > > which bind the value to the file property. The type of file is > > > UploadFile. > > > > > In backingBean I have this code: > > > > > > > > > > [code] > > > > > > > > > > UploadFile file; > > > > > > > > > > public void importFile(){ > > > > > if(file != null) { > > > > > doSomeAction(); > > > > > } > > > > > else{ > > > > > returnError(); > > > > > } > > > > > } > > > > > > > > > > public UploadedFile getFile() { > > > > > return file; > > > > > } > > > > > > > > > > public void setFile(UploadedFile file) { > > > > > this.file = file; > > > > > } > > > > > > > > > > [/code] > > > > > > > > > > The point of the problem is that the file is never null, no matter if > > > file > > > > > exists or not. If file doesn't exist the InputFile component doesn't > > > > return > > > > > null. The UploadFile doesn't have a method to check file existence. > > > > > So my question is when file property can be null. And how to check if > > > file > > > > > exists using InputFile component and UploadFile object? (I cannot use > > > > other > > > > > type, but UploadFile). > > > > > > > > > > > > > > > > > -- > > > > Matthias Wessendorf > > > > > > > > further stuff: > > > > blog: http://matthiaswessendorf.wordpress.com/ > > > > mail: matzew-at-apache-dot-org > > > > > > > > > >