Oops, no, that wouldn't work in this case. Perhaps it would be better if we back up for a moment: why do you need a FileInputStream specifically?

Since FIS is a 'root level' IS implementation, i.e. designed to wrap a datasource (file) directly rather than than to augment an existing stram (like, for example, BufferedInputStream), there's no way to construct one except with an actual File object.

The FormFile API doesn't give you any way to obtain a FileInputStream, nor does it provide access to a File object. I think you'll have to use a different approach to achieve your objective.

L.

Kirthi wrote:
sorry abt that

Its throwing exception at this line

FileInputStream fin = (FileInputStream) in;

I tried new FileInputStream(in) - But this is not a valid constructor - not
defined in API

Is there anyother way in struts where u get FileInputStream directly from
the ActionForm

-Thank you





Laurie Harper wrote:
You didn't specify which line in the code you posted is throwing the exception, but I would guess it's this:

     InputStream in = (InputStream) formFile.getInputStream();
     FileInputStream fin = (FileInputStream) in;                        

It's never wise to down-cast a value from an interface type to a concrete type like this. The API contract is to return you an InputStream; it doesn't have to be any particular type of InputStream.

To do this safely, use the following code instead:

     InputStream in = (InputStream) formFile.getInputStream();
     FileInputStream fin = new (FileInputStream(in);                    

L.

Kirthi wrote:
I am having problems with the FileUpload in struts.

I am uploading an Excel File through browser and sending to Struts Action
Class, handling it with FormFile. I am casting this FormFile to
FileInputStream which is working fine.

But when I am deleting some of the rows in that excel file and uploading
it
again its giving me a ClassCastException when converting the Form File to
FileInputStream.

I have no idea y its happening like this. Can any one help me with this?

Thanks

Here is the error I am getting

root cause
java.lang.ClassCastException
        at rcsa.struts.ExcelFileUpload.execute(ExcelFileUpload.java:48)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:198)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:595)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:432)

******************************************************************************************

Here is the code

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import org.apache.struts.upload.FormFile;
import org.apache.struts.action.*;

import rcsa.poi.RcsaPOIEventListner;
import rcsa.exceptions.RcsaException;
import rcsa.dao.OpRiskSSheet;
import rcsa.misc.ErrorHandler;

public class ExcelFileUpload extends Action {
        
//       --------------------------------------------------------- Instance
Variables
        String target;

        // --------------------------------------------------------- Methods

/** * Method execute
         * @param mapping
         * @param form
         * @param request
         * @param response
         * @return ActionForward
         */
        public ActionForward execute(
                ActionMapping mapping,
                ActionForm form,
                HttpServletRequest request,
                HttpServletResponse response) throws IOException, 
ServletException,
RcsaException{
                        
                ActionMessages errors = new ActionMessages();
                if(form != null){
                        ExcelFileUploadForm excelForm = (ExcelFileUploadForm) 
form;
                        FormFile formFile = excelForm.getExcelFile();
                        InputStream in = (InputStream) 
formFile.getInputStream();
                        FileInputStream fin = (FileInputStream) in;             
        errors.clear();
                        RcsaPOIEventListner.readExcelStream(fin);
                        //errors = new ErrorHandler(opSheet, 
errors).checkErrors();
                        if(errors.isEmpty()){
                                target = "success";
                        }else{
                                target = "failure";                   
                        }
                }else{
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("UNABLE TO LOCATE THE EXCEL FILE", false));
                        target = "failure";
                }
                saveErrors(request, errors);
                return mapping.findForward(target);

        }

}


**********************************************************************

import org.apache.struts.validator.ValidatorForm;
import org.apache.struts.upload.FormFile;
        
        /**
         [EMAIL PROTECTED]
         *
         */

        /**
         *Form bean for File Upload.
         *
         */
public class ExcelFileUploadForm extends ValidatorForm{
        
        private FormFile excelFile;

        /**
         * @return Returns the theFile.
*/ public FormFile getExcelFile() {
            return excelFile;
          }
/**
          * @param theFile The FormFile to set.
          */
          public void setExcelFile(FormFile excelFile) {
            this.excelFile = excelFile;
          }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to