i am trying to upload a file with either *.txt extension or *.abcx extension to the server from a client location
i am using richfaces fileupload for the same purpose.
this a java servlet code...which i tried and it works perfectly the way i want
but i have to use jsf and bean classes
<%@ page language="java" %>
<TITLE>Display file upload form to the user</TITLE>
// for uploading the file we used Encrypt type of multipart/form-data and input of file type to browse and submit the file %> 
<FORM ENCTYPE="multipart/form-data" ACTION="singleupload.jsp" METHOD=POST> 
<center><table border="2" > 
<tr><center><td colspan="2">
<p align="center">
<tr><td><b>Choose the file To Upload:</b></td> 
<td><INPUT NAME="F1" TYPE="file"></td></tr> 
<tr><td colspan="2"><p align="right"><INPUT TYPE="submit" VALUE="Send File" >
<%@ page import="java.io.*" %>
<% //to get the content type information from JSP Request Header 
String contentType = request.getContentType(); 
//here we are checking the content type is not equal to Null and as well as the passed data from mulitpart/form-data is greater than or equal to 0 
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) { 
DataInputStream in = new DataInputStream(request.getInputStream()); 
out.print("input stream"+request.getInputStream()); 
//we are taking the length of Content type data 
int formDataLength = request.getContentLength();
out.print("request content length"+request.getContentLength());
byte dataBytes[] = new byte[formDataLength];
out.print("request content length"+formDataLength);
int byteRead = 0; 
int totalBytesRead = 0; 
//this loop converting the uploaded file into byte code 
while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead, formDataLength); 
totalBytesRead += byteRead; 
String file = new String(dataBytes);
//for saving the file name
String saveFile = file.substring(file.indexOf("filename=\"") + 10);
saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\"")); 
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
int pos; //extracting the index of file 
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length; 
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length; 
// creating a new file with the same name and writing the content in new file 
String filePath="D:\\download\\"+saveFile;
FileOutputStream fileOut = new FileOutputStream(filePath);
fileOut.write(dataBytes, startPos, (endPos - startPos));
%><Br><table border="2">
You have successfully upload the file by the name of:</b>
<% out.println(saveFile); %></td></tr></table> 
<% }%>

the jsp page code
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.org/rich" %>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<rich:fileUpload fileUploadListener="#{load.listener}" addControlLabel="Browse" 
listHeight="50" listWidth="300"
acceptedTypes="abdx,txt" >
<h:commandButton value="Open Project" action="#{Upload.showPanel}" style="width: 92px; height: 40px" onclick="Enable()">
<rich:modalPanel showWhenRendered="#{Uload.panelVisible}" id="panel4" width="550" height="180" > 
<f:facet name="header">
<h:outputText value="Select the location to save the file"></h:outputText>
<f:facet name="controls">
<h:graphicImage value="images/close1.jpg" id="hidemsg"/>
<rich:componentControl for="panel4" attachTo="hidemsg" operation="hide" event="onclick">
<!- <a4j:support event="oncomplete" reRender="assignment"></a4j:support> -->	
<rich:fileUpload fileUploadListener="#{Upload.listenerRead}" addControlLabel="Browse" maxFilesQuantity="1"
listHeight="100" listWidth="500" acceptedTypes="abdx,txt" > 
bean class method will be of class load :
public void listener(UploadEvent event) throws Exception{
UploadItem item = event.getUploadItem();
System.out.println("$##### "+item.getFileName());
filePath=new File(item.getFileName());
//File file = item.getFile();
/*this.filePath = file;*/
this.choosenFile = filePath.getAbsolutePath();
// Approve (Open or Save) was clicked
String filename=filePath.getName();
public String showPanel(){
return "success";
public void listenerRead(UploadEvent event) throws Exception{
UploadItem item = event.getUploadItem();
System.out.println("** "+item.getFileName());
filePath=new File(item.getFileName());	

what else could be added to the bean class to do the same as the previous above one.
the above code with modal pannel, i am not able to invoke.

i am not able to get the request.getInputStream() from the uploaded file

please provide me with a solution so that i can solve the above problem from the fileupload method of richfaces, with the help of