OAF Page to Upload Files into Server from local Machine
1. Create a New Workspace and Project
File > New > General > Workspace Configured for Oracle Applications
File Name – PrajkumarFileUploadDemo
Automatically a new OA Project will also be created
Project Name -- FileUploadDemo
Default Package -- xxcmn.oracle.apps.fnd.fileuploaddemo
2. Create a New Application Module (AM)
Right Click on FileUploadDemo > New > ADF Business Components > Application Module
Name -- FileUploadAM
Package -- xxcmn.oracle.apps.fnd.fileuploaddemo.server
Check Application Module Class: FileUploadAMImpl Generate JavaFile(s)
3. Create a New Page
Right click on FileUploadDemo > New > Web Tier > OA Components > Page
Name -- FileUploadPG
Package -- xxcmn.oracle.apps.fnd.fileuploaddemo.webui
4. Select the FileUploadPG and go to the strcuture pane where a default region has been created
5. Select region1 and set the following properties --
6. Create messageComponentLayout Region Under Page Layout Region
Right click PageLayoutRN > New > Region
7. Create a New Item messageFileUpload Bean under MainRN
Right click on MainRN > New > messageFileUpload
Set Following Properties for New Item --
8. Create a New Item Submit Button Bean under MainRN
Right click on MainRN > New > messageLayout
Set Following Properties for messageLayout --
Right Click on ButtonLayout > New > Item
9. Create Controller for page FileUploadPG
Right Click on PageLayoutRN > Set New Controller
Package Name: prajkumar.oracle.apps.fnd.fileuploaddemo.webui
Class Name: FileUploadCO
Write Following Code in FileUploadCO processFormRequest
import oracle.cabo.ui.data.DataObject;
import java.io.FileOutputStream;
import java.io.InputStream;
import oracle.jbo.domain.BlobDomain;
import java.io.File;
import oracle.apps.fnd.framework.OAException;
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{ super.processFormRequest(pageContext, webBean);
if(pageContext.getParameter("Submit")!=null)
{
upLoadFile(pageContext,webBean);
}
}
CODE #1 -- If Page has not deployed at instance, testing at Local Machine, use following Code
public void upLoadFile(OAPageContext pageContext,OAWebBean webBean)
{ String filePath = "D:\\temp";
System.out.println("Default File Path---->"+filePath);
String fileUrl = null;
try
{
DataObject fileUploadData = pageContext.getNamedDataObject("MessageFileUpload");
//FileUploading is my MessageFileUpload Bean Id
if(fileUploadData!=null)
{
String uFileName = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_NAME");
String contentType = (String) fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
System.out.println("User File Name---->"+uFileName);
FileOutputStream output = null;
InputStream input = null;
BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, uFileName);
System.out.println("uploadedByteStream---->"+uploadedByteStream);
File file = new File("D:\\temp", uFileName);
System.out.println("File output---->"+file);
output = new FileOutputStream(file);
System.out.println("output----->"+output);
input = uploadedByteStream.getInputStream();
System.out.println("input---->"+input);
byte abyte0[] = new byte[0x19000];
int i;
while((i = input.read(abyte0)) > 0)
output.write(abyte0, 0, i);
output.close();
input.close();
}
}
catch(Exception ex)
{
throw new OAException(ex.getMessage(), OAException.ERROR);
}
}
CODE #2 -- If Page has been Deployed at Instance, Use Following Code
public void upLoadFile(OAPageContext pageContext,OAWebBean webBean)
{ String filePath = "/Unix Path/";
System.out.println("Default File Path---->"+filePath);
String fileUrl = null;
try
{
DataObject fileUploadData = pageContext.getNamedDataObject("MessageFileUpload");
//FileUploading is my MessageFileUpload Bean Id
if(fileUploadData!=null)
{
String uFileName = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_NAME");
String contentType = (String) fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
System.out.println("User File Name---->"+uFileName);
FileOutputStream output = null;
InputStream input = null;
BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, uFileName);
System.out.println("uploadedByteStream---->"+uploadedByteStream);
File file = new File("/Unix Path/", uFileName);
System.out.println("File output---->"+file);
output = new FileOutputStream(file);
System.out.println("output----->"+output);
input = uploadedByteStream.getInputStream();
System.out.println("input---->"+input);
byte abyte0[] = new byte[0x19000];
int i;
while((i = input.read(abyte0)) > 0)
output.write(abyte0, 0, i);
output.close();
input.close();
}
}
catch(Exception ex)
{
throw new OAException(ex.getMessage(), OAException.ERROR);
}
}
10. Congratulation you have successfully finished. Run Your page and Test Your Work
Page has not been deployed and Used CODE #1
Before Upload the File
After Upload the File
Courtesy : https://blogs.oracle.com/prajkumar/entry/oaf_page_to_upload_files
File Name – PrajkumarFileUploadDemo
Automatically a new OA Project will also be created
Project Name -- FileUploadDemo
Default Package -- xxcmn.oracle.apps.fnd.fileuploaddemo
2. Create a New Application Module (AM)
Right Click on FileUploadDemo > New > ADF Business Components > Application Module
Name -- FileUploadAM
Package -- xxcmn.oracle.apps.fnd.fileuploaddemo.server
Check Application Module Class: FileUploadAMImpl Generate JavaFile(s)
3. Create a New Page
Right click on FileUploadDemo > New > Web Tier > OA Components > Page
Name -- FileUploadPG
Package -- xxcmn.oracle.apps.fnd.fileuploaddemo.webui
4. Select the FileUploadPG and go to the strcuture pane where a default region has been created
5. Select region1 and set the following properties --
Attribute
|
Property
|
ID
|
PageLayoutRN
|
AM Definition
|
xxcmn.oracle.apps.fnd.fileuploaddemo.server.FileUploadAM
|
Window Title
|
Uploading File into Server from Local Machine Demo Window
|
Title
|
Uploading File into Server from Local Machine Demo
|
6. Create messageComponentLayout Region Under Page Layout Region
Right click PageLayoutRN > New > Region
Attribute
|
Property
|
ID
|
MainRN
|
Item Style
|
messageComponentLayout
|
7. Create a New Item messageFileUpload Bean under MainRN
Right click on MainRN > New > messageFileUpload
Set Following Properties for New Item --
Attribute
|
Property
|
ID
|
MessageFileUpload
|
Item Style
|
messageFileUpload
|
8. Create a New Item Submit Button Bean under MainRN
Right click on MainRN > New > messageLayout
Set Following Properties for messageLayout --
Attribute
|
Property
|
ID
|
ButtonLayout
|
Right Click on ButtonLayout > New > Item
Attribute
|
Property
|
ID
|
Submit
|
Item Style
|
submitButton
|
Attribute Set
|
/oracle/apps/fnd/attributesets/Buttons/Go
|
9. Create Controller for page FileUploadPG
Right Click on PageLayoutRN > Set New Controller
Package Name: prajkumar.oracle.apps.fnd.fileuploaddemo.webui
Class Name: FileUploadCO
Write Following Code in FileUploadCO processFormRequest
import oracle.cabo.ui.data.DataObject;
import java.io.FileOutputStream;
import java.io.InputStream;
import oracle.jbo.domain.BlobDomain;
import java.io.File;
import oracle.apps.fnd.framework.OAException;
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{ super.processFormRequest(pageContext, webBean);
if(pageContext.getParameter("Submit")!=null)
{
upLoadFile(pageContext,webBean);
}
}
CODE #1 -- If Page has not deployed at instance, testing at Local Machine, use following Code
public void upLoadFile(OAPageContext pageContext,OAWebBean webBean)
{ String filePath = "D:\\temp";
System.out.println("Default File Path---->"+filePath);
String fileUrl = null;
try
{
DataObject fileUploadData = pageContext.getNamedDataObject("MessageFileUpload");
//FileUploading is my MessageFileUpload Bean Id
if(fileUploadData!=null)
{
String uFileName = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_NAME");
String contentType = (String) fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
System.out.println("User File Name---->"+uFileName);
FileOutputStream output = null;
InputStream input = null;
BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, uFileName);
System.out.println("uploadedByteStream---->"+uploadedByteStream);
File file = new File("D:\\temp", uFileName);
System.out.println("File output---->"+file);
output = new FileOutputStream(file);
System.out.println("output----->"+output);
input = uploadedByteStream.getInputStream();
System.out.println("input---->"+input);
byte abyte0[] = new byte[0x19000];
int i;
while((i = input.read(abyte0)) > 0)
output.write(abyte0, 0, i);
output.close();
input.close();
}
}
catch(Exception ex)
{
throw new OAException(ex.getMessage(), OAException.ERROR);
}
}
CODE #2 -- If Page has been Deployed at Instance, Use Following Code
public void upLoadFile(OAPageContext pageContext,OAWebBean webBean)
{ String filePath = "/Unix Path/";
System.out.println("Default File Path---->"+filePath);
String fileUrl = null;
try
{
DataObject fileUploadData = pageContext.getNamedDataObject("MessageFileUpload");
//FileUploading is my MessageFileUpload Bean Id
if(fileUploadData!=null)
{
String uFileName = (String)fileUploadData.selectValue(null, "UPLOAD_FILE_NAME");
String contentType = (String) fileUploadData.selectValue(null, "UPLOAD_FILE_MIME_TYPE");
System.out.println("User File Name---->"+uFileName);
FileOutputStream output = null;
InputStream input = null;
BlobDomain uploadedByteStream = (BlobDomain)fileUploadData.selectValue(null, uFileName);
System.out.println("uploadedByteStream---->"+uploadedByteStream);
File file = new File("/Unix Path/", uFileName);
System.out.println("File output---->"+file);
output = new FileOutputStream(file);
System.out.println("output----->"+output);
input = uploadedByteStream.getInputStream();
System.out.println("input---->"+input);
byte abyte0[] = new byte[0x19000];
int i;
while((i = input.read(abyte0)) > 0)
output.write(abyte0, 0, i);
output.close();
input.close();
}
}
catch(Exception ex)
{
throw new OAException(ex.getMessage(), OAException.ERROR);
}
}
10. Congratulation you have successfully finished. Run Your page and Test Your Work
Page has not been deployed and Used CODE #1
Before Upload the File
After Upload the File
Courtesy : https://blogs.oracle.com/prajkumar/entry/oaf_page_to_upload_files