File upload af:inputFile

Hi,
I want to upload a file and that is working fine. But before I upload it I need to check the file creation date, and the file path.
How can I get that information?
this is a part of my code:
    public void onFileUploaded(ValueChangeEvent event) {
        UploadedFile file = (UploadedFile)event.getNewValue();with file I can access file name and size, but that is not enough.
Any suggestions?

Hi,
you don't have access to the file's path. However, the UploadedFile class has a getLength() method. Can you use this for the size information ?
Frank

Similar Messages

  • File Upload Extension

    When using the Input File Upload (af:inputFile) component, is there a way to set the file extension for certain mime types?
    For example, when the user uploads a file, I only want to allow files with the .doc (MS Word) extension. Thanks.

    Actually not. You can only check the filename or mime type after the user has selected and uploaded the file. Then you can use the code from the post above.
    Timo

  • NullPointerException while uploading wrong file in af:inputfile

    Hi All,
    I am uploading excel sheet data into jspx Page(database table) by using af:inputFile.After uploading file af:inputFile need to be refresh.It is getting refresh for right file(excel file),but it is not refreshing for wrong file upload.
    it showing following error.
    UIComponent is null
    ADF_FACES-60097:For more information, please see the server's error log for an entry beginning with: ADF_FACES-60096:Server Exception during PPR, #2
    i had refer frank's blog https://blogs.oracle.com/jdevotnharvest/entry/how_to_reset_adf_faces.
    Could any one help on this!!
    Thanks in advance!!

    here is my jspx source code.
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:h="http://java.sun.com/jsf/html">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document title="ExcelToTable.jspx" id="d1">
    <af:messages id="m1"/>
    <af:form id="f1" usesUpload="true">
    <af:pageTemplate viewId="/oracle/templates/threeColumnTemplate.jspx" id="pt1">
    <f:facet name="center">
    <af:panelSplitter id="ps1" orientation="vertical" splitterPosition="146">
    <f:facet name="first">
    <af:panelFormLayout id="pfl2">
    <af:panelLabelAndMessage label="#{bindings.Deptno.hints.label}" id="plam1">
    <af:outputText value="#{bindings.Deptno.inputValue}" id="ot1">
    <af:convertNumber groupingUsed="false" pattern="#{bindings.Deptno.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.Dname.hints.label}" id="plam2">
    <af:outputText value="#{bindings.Dname.inputValue}" id="ot2"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.Loc.hints.label}" id="plam3">
    <af:outputText value="#{bindings.Loc.inputValue}" id="ot3"/>
    </af:panelLabelAndMessage>
    <f:facet name="footer">
    <af:panelGroupLayout layout="vertical" id="pgl2">
    <af:panelGroupLayout layout="horizontal" id="pgl3">
    <f:facet name="separator">
    <af:spacer width="10" height="1" id="s1"/>
    </f:facet>
    <af:commandButton actionListener="#{bindings.First.execute}"
    text="First" disabled="#{!bindings.First.enabled}"
    partialSubmit="true" id="cb1"/>
    <af:commandButton actionListener="#{bindings.Previous.execute}"
    text="Previous"
    disabled="#{!bindings.Previous.enabled}"
    partialSubmit="true" id="cb4"/>
    <af:commandButton actionListener="#{bindings.Next.execute}" text="Next"
    disabled="#{!bindings.Next.enabled}"
    partialSubmit="true" id="cb5"/>
    <af:commandButton actionListener="#{bindings.Last.execute}" text="Last"
    disabled="#{!bindings.Last.enabled}"
    partialSubmit="true" id="cb6"/>
    </af:panelGroupLayout>
    <af:commandButton text="Submit" id="cb7"/>
    </af:panelGroupLayout>
    </f:facet>
    </af:panelFormLayout>
    </f:facet>
    <f:facet name="second">
    <af:panelCollection id="pc1">
    <f:facet name="menus"/>
    <f:facet name="toolbar">
    <af:toolbar id="t2">
    <af:commandButton actionListener="#{bindings.CreateInsert.execute}"
    text="InsertRow"
    disabled="#{!bindings.CreateInsert.enabled}" id="cb2"
    immediate="true"/>
    <af:commandButton actionListener="#{bindings.Delete.execute}"
    text="DeleteRow"
    disabled="#{!bindings.Delete.enabled}" id="cb3"
    immediate="true"/>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.EmpView3.collectionModel}" var="row"
    rows="#{bindings.EmpView3.rangeSize}"
    emptyText="#{bindings.EmpView3.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.EmpView3.rangeSize}" rowBandingInterval="0"
    filterModel="#{bindings.EmpView3Query.queryDescriptor}"
    queryListener="#{bindings.EmpView3Query.processQuery}"
    filterVisible="true" varStatus="vs"
    selectedRowKeys="#{bindings.EmpView3.collectionModel.selectedRow}"
    selectionListener="#{bindings.EmpView3.collectionModel.makeCurrent}"
    rowSelection="single" id="t1" partialTriggers="::cb2 ::cb3">
    <af:column sortProperty="#{bindings.EmpView3.hints.Empno.name}"
    filterable="true" sortable="true"
    headerText="#{bindings.EmpView3.hints.Empno.label}" id="c1">
    <af:inputText value="#{row.bindings.Empno.inputValue}"
    label="#{bindings.EmpView3.hints.Empno.label}"
    required="#{bindings.EmpView3.hints.Empno.mandatory}"
    columns="#{bindings.EmpView3.hints.Empno.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Empno.precision}"
    shortDesc="#{bindings.EmpView3.hints.Empno.tooltip}" id="it1">
    <f:validator binding="#{row.bindings.Empno.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.EmpView3.hints.Empno.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Ename.name}"
    filterable="true" sortable="true"
    headerText="#{bindings.EmpView3.hints.Ename.label}" id="c2">
    <af:inputText value="#{row.bindings.Ename.inputValue}"
    label="#{bindings.EmpView3.hints.Ename.label}"
    required="#{bindings.EmpView3.hints.Ename.mandatory}"
    columns="#{bindings.EmpView3.hints.Ename.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Ename.precision}"
    shortDesc="#{bindings.EmpView3.hints.Ename.tooltip}" id="it2">
    <f:validator binding="#{row.bindings.Ename.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Job.name}" filterable="true"
    sortable="true" headerText="#{bindings.EmpView3.hints.Job.label}"
    id="c3">
    <af:inputText value="#{row.bindings.Job.inputValue}"
    label="#{bindings.EmpView3.hints.Job.label}"
    required="#{bindings.EmpView3.hints.Job.mandatory}"
    columns="#{bindings.EmpView3.hints.Job.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Job.precision}"
    shortDesc="#{bindings.EmpView3.hints.Job.tooltip}" id="it3">
    <f:validator binding="#{row.bindings.Job.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Mgr.name}" filterable="true"
    sortable="true" headerText="#{bindings.EmpView3.hints.Mgr.label}"
    id="c4">
    <af:inputText value="#{row.bindings.Mgr.inputValue}"
    label="#{bindings.EmpView3.hints.Mgr.label}"
    required="#{bindings.EmpView3.hints.Mgr.mandatory}"
    columns="#{bindings.EmpView3.hints.Mgr.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Mgr.precision}"
    shortDesc="#{bindings.EmpView3.hints.Mgr.tooltip}" id="it4">
    <f:validator binding="#{row.bindings.Mgr.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.EmpView3.hints.Mgr.format}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Hiredate.name}"
    filterable="true" sortable="true"
    headerText="#{bindings.EmpView3.hints.Hiredate.label}" id="c5">
    <f:facet name="filter">
    <af:inputDate value="#{vs.filterCriteria.Hiredate}" id="id1">
    <af:convertDateTime pattern="#{bindings.EmpView3.hints.Hiredate.format}"/>
    </af:inputDate>
    </f:facet>
    <af:inputDate value="#{row.bindings.Hiredate.inputValue}"
    label="#{bindings.EmpView3.hints.Hiredate.label}"
    required="#{bindings.EmpView3.hints.Hiredate.mandatory}"
    columns="#{bindings.EmpView3.hints.Hiredate.displayWidth}"
    shortDesc="#{bindings.EmpView3.hints.Hiredate.tooltip}"
    id="id2">
    <f:validator binding="#{row.bindings.Hiredate.validator}"/>
    <af:convertDateTime pattern="#{bindings.EmpView3.hints.Hiredate.format}"/>
    </af:inputDate>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Sal.name}" filterable="true"
    sortable="true" headerText="#{bindings.EmpView3.hints.Sal.label}"
    id="c6">
    <af:inputText value="#{row.bindings.Sal.inputValue}"
    label="#{bindings.EmpView3.hints.Sal.label}"
    required="#{bindings.EmpView3.hints.Sal.mandatory}"
    columns="#{bindings.EmpView3.hints.Sal.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Sal.precision}"
    shortDesc="#{bindings.EmpView3.hints.Sal.tooltip}" id="it5">
    <f:validator binding="#{row.bindings.Sal.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Comm.name}" filterable="true"
    sortable="true" headerText="#{bindings.EmpView3.hints.Comm.label}"
    id="c7">
    <af:inputText value="#{row.bindings.Comm.inputValue}"
    label="#{bindings.EmpView3.hints.Comm.label}"
    required="#{bindings.EmpView3.hints.Comm.mandatory}"
    columns="#{bindings.EmpView3.hints.Comm.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Comm.precision}"
    shortDesc="#{bindings.EmpView3.hints.Comm.tooltip}" id="it6">
    <f:validator binding="#{row.bindings.Comm.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="#{bindings.EmpView3.hints.Deptno.name}"
    filterable="true" sortable="true"
    headerText="#{bindings.EmpView3.hints.Deptno.label}" id="c8">
    <af:inputText value="#{row.bindings.Deptno.inputValue}"
    label="#{bindings.EmpView3.hints.Deptno.label}"
    required="#{bindings.EmpView3.hints.Deptno.mandatory}"
    columns="#{bindings.EmpView3.hints.Deptno.displayWidth}"
    maximumLength="#{bindings.EmpView3.hints.Deptno.precision}"
    shortDesc="#{bindings.EmpView3.hints.Deptno.tooltip}"
    id="it7">
    <f:validator binding="#{row.bindings.Deptno.validator}"/>
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.EmpView3.hints.Deptno.format}"/>
    </af:inputText>
    </af:column>
    </af:table>
    </af:panelCollection>
    </f:facet>
    </af:panelSplitter>
    </f:facet>
    <f:facet name="header"/>
    <f:facet name="start">
    <af:panelGroupLayout id="pgl1">
    <af:panelFormLayout id="pfl1">
    <f:facet name="footer">
    <af:commandButton text="Upload" id="uploadButton"
    actionListener="#{FileProcessor.checkFile}" partialSubmit="true"/>
    </f:facet>
    <af:inputFile label="EmpFile" id="if1" value="#{FileProcessor.uploadedFile}"
    partialTriggers="uploadButton" binding="#{FileProcessor.inputFile}"/>
    <af:messages id="m2"/>
    </af:panelFormLayout>
    </af:panelGroupLayout>
    </f:facet>
    <f:facet name="branding"/>
    <f:facet name="copyright"/>
    <f:facet name="status"/>
    </af:pageTemplate>
    </af:form>
    </af:document>
    </f:view>
    </jsp:root>
    and bean class code is as follows.
    package xxorn.model.view;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.component.UIViewRoot;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import oracle.adf.view.rich.component.rich.input.RichInputFile;
    import oracle.adf.view.rich.component.rich.output.RichMessages;
    import oracle.adf.view.rich.context.AdfFacesContext;
    import org.apache.myfaces.trinidad.model.UploadedFile;
    import org.apache.myfaces.trinidad.util.ComponentUtils;
    public class FileProcessor {
    private CSVtoADFTableProcessor tablecreator;
    private UploadedFile uploadedFile;
    private String filename;
    private long filesize;
    private String filecontents;
    private String filetype;
    private RichMessages errorMsg;
    private RichInputFile inputFile;
    public FileProcessor() {
    public void setUploadedFile(UploadedFile uploadedFile) {
    this.uploadedFile = uploadedFile;
    this.filename = uploadedFile.getFilename();
    this.filesize = uploadedFile.getLength();
    this.filetype = uploadedFile.getContentType();
    try {
    if (filename.endsWith(".csv"))
    tablecreator.processCSV(uploadedFile.getInputStream());
    else if(filename.endsWith(".xls")){
    System.out.println("uploaded file is ********"+uploadedFile);
    tablecreator.fileSubmit(uploadedFile.getInputStream());
    //tablecreator.WriteXLS(uploadedFile.getInputStream());
    else if (filename.endsWith(".xlsx")){
    tablecreator.fileSubmitXSSF(uploadedFile.getInputStream());
    //wrong file upload
    else{
    String msg="this is a global message.";
    FacesContext ctx =FacesContext.getCurrentInstance();
    FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, "Please Upload proper file");
    ctx.addMessage(null,fm);
    } catch (IOException e) {
    e.printStackTrace();
    public void convertStreamToString(InputStream is) throws IOException {
    StringBuilder sb = new StringBuilder();
    String line;
    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    while ((line = reader.readLine()) != null) {
    sb.append(line).append("\n");
    System.out.println(sb.toString());
    public UploadedFile getUploadedFile() {
    return uploadedFile;
    public void setFilename(String filename) {
    this.filename = filename;
    public String getFilename() {
    return filename;
    public void setFilesize(long filesize) {
    this.filesize = filesize;
    public long getFilesize() {
    return filesize;
    public void setFilecontents(String filecontents) {
    this.filecontents = filecontents;
    public String getFilecontents() {
    return filecontents;
    public void setFiletype(String filetype) {
    this.filetype = filetype;
    public String getFiletype() {
    return filetype;
    public void setTablecreator(CSVtoADFTableProcessor tablecreator) {
    this.tablecreator = tablecreator;
    public CSVtoADFTableProcessor getTablecreator() {
    return tablecreator;
    public void setErrorMsg(RichMessages errorMsg) {
    this.errorMsg = errorMsg;
    public RichMessages getErrorMsg() {
    return errorMsg;
    public String checkFile(ActionEvent actionEvent) throws Exception {
    // Add event code here...
    System.out.println("in upload action event");
    /* RichInputFile vTheInputFileComponent = getInputFile();
    vTheInputFileComponent.resetValue();*/
    FacesContext vFacesContext = FacesContext.getCurrentInstance();
    UIViewRoot vUIViewRoot = vFacesContext.getViewRoot();
    RichInputFile vTheInputFileComponent =
    (RichInputFile)vUIViewRoot.findComponent("if1");
    vTheInputFileComponent.resetValue();
    AdfFacesContext adfFacesCtx = AdfFacesContext.getCurrentInstance();
    adfFacesCtx.addPartialTarget(inputFile);
    return null;
    public void setInputFile(RichInputFile inputFile) {
    this.inputFile = inputFile;
    inputFile=null;
    public RichInputFile getInputFile() {
    return inputFile;
    }

  • Getting "Warning: The file upload failed.No such file or directory." while trying to upload image using af:inputFile

    Hi,
    I have a <af:inputFile> component which will upload only image file and render  the corresponding image...
    It work with normal application deployed on weblogic server however when i use same taskflow as a part of human task in SOA BPM worklist...
    I get this warning message "Warning: The file upload failed.No such file or directory." for certain files where as it works for certain image files.
    And in BPM whenever i upload PNG file it throws this error.
    Please help.

    For some files like Images with .png extensions it gives following error :
    java.io.IOException: No such file or directory
      at java.io.UnixFileSystem.createFileExclusively(Native Method)
      at java.io.File.checkAndCreate(File.java:1705)
      at java.io.File.createTempFile0(File.java:1726)
      at java.io.File.createTempFile(File.java:1803)
      at org.apache.myfaces.trinidadinternal.config.upload.UploadedFileImpl._createOutputStream(UploadedFileImpl.java:284)
      at org.apache.myfaces.trinidadinternal.config.upload.UploadedFileImpl.loadFile(UploadedFileImpl.java:208)
      at org.apache.myfaces.trinidadinternal.config.upload.CompositeUploadedFileProcessorImpl._processFile(CompositeUploadedFileProcessorImpl.java:344)
      at org.apache.myfaces.trinidadinternal.config.upload.CompositeUploadedFileProcessorImpl.processFile(CompositeUploadedFileProcessorImpl.java:95)
      at org.apache.myfaces.trinidadinternal.config.upload.FileUploadConfiguratorImpl._doUploadFile(FileUploadConfiguratorImpl.java:329)
      at org.apache.myfaces.trinidadinternal.config.upload.FileUploadConfiguratorImpl.beginRequest(FileUploadConfiguratorImpl.java:162)
      at org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl._startConfiguratorServiceRequest(GlobalConfiguratorImpl.java:610)
      at org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl.beginRequest(GlobalConfiguratorImpl.java:216)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:155)
      at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.bpel.services.workflow.client.worklist.util.WorkflowFilter.doFilter(WorkflowFilter.java:175)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.bpel.services.workflow.client.worklist.util.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:70)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
      at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
      at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
      at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
      at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

  • How to upload multiple files using af:inputfile

    Hi,
    I am using J dev 11.1.1.3. I have a requirement wherein i need to upload multiple files using af:inputfile. Can we do in it ADF ? Is there any other work around to implement the same. I have checked previous questions but not able to find proper solution for this.
    Any pointer in this regard is highly helpful.
    Regards,
    Kalyan

    You have to do this your self by either (as vinod said) using a different component (not present in adf) or implementing this:
    1) allow the user to select multiple filenames (somehow)
    2) zip them together
    3) upload the zip
    4) unpack the zip on the server
    5) work with the files
    Timo

  • Issue with Getting the file path from InputFile component

    Hi,
    One of our requirement is like below:
    I am working on ADF 11g (latest release R1) page. User will select the file and when he/she clicks on the Save button we need to store the file path in the database.
    In the database file_path is varchar2(300). We need to store just the file path. I am using InputFile component but filepath is not getting inserted.
    This is really urgent. It would be really appreciate if anyone can guide me on this.
    Thanks
    MC

    Hi Mahesh,
    I have manage to store the file path from the InputFile component in Jdev 11g. I found the file upload script from this forum and manage to alter it so that i could save the file path to the database. But my problem is to retrieve it back to view as a document. Hope this will help you :)
    This is an example of what I have manage to save to my DB :
    (CLOB) //192.168.238.53/c$/Research/Docs/0906160744/EyeCandyLog.txt
    In my form, I save the file path first before I update the other fields. My code is something like this :
    public void uploadFile(ValueChangeEvent valueChangeEvent) {
    // Add event code here...
    InputStream in;
    FileOutputStream out;
    if(tanda == 0){
    try {
    // final Context context = getInitialContext();
    RS01Proposal rS01Proposal = (RS01Proposal)new InitialContext().lookup("Phase2-RS01Proposal#sr.model.RS01Proposal");
    id = rS01Proposal.dptProposalid();
    tanda = tanda + 1;
    System.out.println("tanda"+ tanda);
    } catch (Exception ex) {
    ex.printStackTrace();
    System.out.println("id"+id);
    proposal = id.substring(6);
    System.out.println("proposal"+proposal);
    UploadedFile file = (UploadedFile)valueChangeEvent.getNewValue();
    String fileUploadLoc = "//192.168.238.53/c$/Research/Docs/"+id+"/";//The place where file will saved
    //create upload directory
    boolean exists = (new File(fileUploadLoc)).exists();
    if (!exists) {
    (new File(fileUploadLoc)).mkdirs();
    if (file != null && file.getLength() > 0) {
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message =
    new FacesMessage("File Uploaded " + file.getFilename() +
    " (" + file.getLength() + " bytes)");
    *// extracting the file message to get the path*
    context.addMessage(valueChangeEvent.getComponent().getClientId(context), message);
    columnL = valueChangeEvent.getComponent().getClientId(context);
    column = columnL.substring(9);
    System.out.println(column);
    columnLengkap = "RS01"+column.toUpperCase();
    System.out.println("columnLengkap"+columnLengkap);
    *try {*
    out = new FileOutputStream(fileUploadLoc + "" + file.getFilename());
    in = file.getInputStream();
    *for (int bytes = 0; bytes < file.getLength(); bytes++) {*
    out.write(in.read());
    in.close();
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    } else {
    String filename = file != null ? file.getFilename() : null;
    String byteLength = file != null ? "" + file.getLength() : "0";
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message =
    new FacesMessage(FacesMessage.SEVERITY_WARN, " " + " " +
    filename + " (" + byteLength + " bytes)",
    null);
    context.addMessage(valueChangeEvent.getComponent().getClientId(context),
    message);
    System.out.println(fileUploadLoc+file.getFilename());
    a = fileUploadLoc+file.getFilename();
    b = b + 1;
    if (flagInsert == 0){
    try {
    // final Context context = getInitialContext();
    RS01Proposal rS01Proposal = (RS01Proposal)new InitialContext().lookup("Phase2-RS01Proposal#sr.model.RS01Proposal");
    rS01Proposal.insertDoc(id,proposal,columnLengkap,a);
    flagInsert = flagInsert + 1;
    System.out.println("tanda"+ tanda);
    //session
    ProposalSession.storeCurrentProposalId(id);
    } catch (Exception ex) {
    ex.printStackTrace();
    }else{
    // update proses
    try {
    // final Context context = getInitialContext();
    RS01Proposal rS01Proposal = (RS01Proposal)new InitialContext().lookup("Phase2-RS01Proposal#sr.model.RS01Proposal");
    rS01Proposal.updateDoc(id,proposal,columnLengkap,a);
    flagInsert = flagInsert + 1;
    //session
    ProposalSession.storeCurrentProposalId(id);
    System.out.println("tanda"+ tanda);
    } catch (Exception ex) {
    ex.printStackTrace();
    }

  • File Upload Problem in .jsff

    Hi All,
    I am using File Upload Component for Uploading file in JSFF , But it is not working My code is like bellow
    //variables
    private UploadedFile upFile;
    private RichInputFile fileupload;
    //--Getters
    public UploadedFile getUpFile() {
    return upFile;
    public void setUpFile(UploadedFile upFile) {
    System.out.println("Inside set Upload File"+upFile);
    this.upFile = upFile;
    //upload method
    public String upload() throws IOException {
    System.out.println("Inside File Upload");
    try {
    InputStream in;
    FileOutputStream out;
    String fileUploadLoc = "C:\\ListUpload\\";
    try {
    if (upFile != null && upFile.getLength() > 0) {
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message =
    new FacesMessage("Successfully uploaded file '" +
    upFile.getFilename() + "' (" +
    upFile.getLength() + " bytes)");
    String filename = fileUploadLoc + upFile.getFilename();
    out = new FileOutputStream(filename);
    System.out.println("The file name:" + filename);
    try {
    in = upFile.getInputStream();
    for (int bytes = 0; bytes < upFile.getLength();
    bytes++) {
    out.write(in.read());
    in.close();
    out.close();
    } catch (IOException ioe) {
    // TODO: Add catch code
    ioe.printStackTrace();
    System.out.println("The file name:" + upFile.getFilename() +
    " has been created in " +
    fileUploadLoc);
    }else{
    System.out.println("Inside Else");
    } catch (FileNotFoundException fnfe) {
    // TODO: Add catch code
    fnfe.printStackTrace();
    return null;
    } catch (Exception ioe) {
    System.out.println("IO Exception is..."+ioe);
    System.out.println("File Upload Unsuccessful");
    return "OK";
    ///Code for jsff is--
    <af:inputFile label="Select File" id="fileupload"
    value="#{pageFlowScope.ModifyPriceListBean.upFile}"/>
    <af:commandToolbarButton text="Upload"
    id="ctb8"
    action="#{pageFlowScope.ModifyPriceListBean.upload}"/>

    Hi Thanks for Reply,
    I am using jsff Page Fragement for my page, so i am not using af:form and af:document in my JSFF
    So how to achive this in this case.
    Thanks,
    Vijay

  • How to solve Fusion ADF file upload and download?

    Now we are building web application with Fusion ADF (JDeveloper 11.1.2.0.0). We want to downloading and uploading from tables.Is there any special tool in Fusion ADF or should I going with traditional java coding. Thanks

    Actually ADF Provide Components for file upload and download
    Download :
    <af:fileDownloadActionListener/>
    See tagDoc: http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_fileDownloadActionListener.html
    Upload
    <af:inputFile/>
    See tagDoc: http://jdevadf.oracle.com/adf-richclient-demo/docs/tagdoc/af_inputFile.html
    Edited by: -CHS on Jul 6, 2011 9:52 AM

  • Multiple file upload

    I need to upload multiple files from my system in ADF application, but "inputFile" component allows only one file. is it possible implement a multiple file upload similar to gmail file attachements?. Any help/pointers are appreciated.
    Thanks,
    Surya

    I can think of a solution using ADF
    One thing you can do is to have a managed bean has List<UploadedFile> files
    And you can generate your inputFile to use valueChangeListener and ofcourse don't forget the auto submit to be true, and once you submit a value, you can add it to the uploadedFile "files" list.
    The only problem you may have is that when a user try to update an existing uploaded file, I believe this may require tweaking so instead of having List<UploadedFile> you can have a Hashtabl<UIComponent,UploadedFile> to make sure you map things correctly!
    I'll try it and let you know the results
    Edited by: agawish on Mar 6, 2012 11:28 PM

  • Is File Upload supported on IE9

    Hi All,
    My Jdev Version 11.1.1.5.
    In my application, I have a feature/functionality of file upload(using af:inputFile). When I run my application in IE8, it runs perfectly fine.
    But when I run the same application in IE9, it does not run. When I try to upload a file, it just refreshes the page without uploading it.
    Is file upload supported in IE9. Because I found this forum thread though a bit old, which says file upload is not supported in IE9.
    BUG File upload broken in IE9
    Not sure if this issue is resolved. If not, is there any documentation for the same. Because we need to convince the same to client :)
    Thanks,
    Umesh

    ADF 11.1.1.5 does support IE9, it is the first version to do so (see browser certification: http://www.oracle.com/technetwork/developer-tools/jdev/index-091111.html#Browsers)
    However, there were some problems with IE9 and af:inputFile in 11.1.1.5, see support note "In IE9, Input Components Lose Their Values When Using an af:inputFile on the Same Form [ID 1420818.1]". You can either upgrade to 11.1.1.6 or apply the patch mentioned in the note.
    Hope this helps!
    - Joonas

  • Declarative Component : UploadedFile Isssue for multiple file Upload case.

    Hi,
    I have made one declarative component for the multiple file upload case; where i have add button that dynamically adds af:inputFile component to the popup dialog and similarly delete button to dynamically delete the selected inputFile component. Everything work fine such as:
    1. add button adds the inputfile component properly and delete does the same.
    2. upload of Multiple files also works fine. ( I keep the uploadedFile in the java.util.Map which is the pageFlowScope and once, Dialog box ok/cancel is clicked, i clear everything back).
    IT WORKS GREAT WHEN:
    User hit 5 times add button if they want to upload 5 images. and do upload for all the 5 inputFile components . (Add or Delete button should not be clicked after any upload , but before you can.)..
    THE ONLY PROBLEM IS WHEN:
    1. user uploaded; say 2 images but not yet clicked in the ok/cancel button yet... they are still in the upload dialog ..and hit ADD button again.
    2. After that user uploads say another file/image and now UploadedFile's getInputStream() returns null, length becomes 0 for all the other uploadedFile except this newly uploaded file.
    Now, here is the thing, i wrote my own customUplodedFile class which is just a wrapper and it return getInputStream() from this class and length from this class and it is working.... But i am not sure why does the uploadedFile loses it's value...
    import org.apache.myfaces.trinidad.model.UploadedFile;
    public interface ICustomUploadedFile
      extends Serializable, UploadedFile
      public String getFilename();
      public String getContentType();
      public long getLength();
      public Object getOpaqueData();
      public InputStream getInputStream();
      public void dispose();
    ====================
    public class CustomUploadedFile
      implements ICustomUploadedFile, Serializable
      private transient UploadedFile mUploadedFile;
      private transient InputStream mInputStream;
      private long mLength;
      public CustomUploadedFile()
      public CustomUploadedFile(UploadedFile pUploadedFile)
        this.mUploadedFile = pUploadedFile;
        this.mLength = pUploadedFile.getLength();
        try
          this.mInputStream = pUploadedFile.getInputStream();
        catch (IOException e)
          e.printStackTrace();
      public String getFilename()
        return mUploadedFile.getFilename();
      public String getContentType()
        return mUploadedFile.getContentType();
      public long getLength()
        return mLength;
      public Object getOpaqueData()
        return mUploadedFile.getOpaqueData();
      public InputStream getInputStream()
        return mInputStream;
      public void dispose()
        mUploadedFile.dispose();
    } Now, my questions are:
    1. Is there a way i could follow to not to lose the UploadedFiles's inputStream and length by not using my wrapper class but in a standard way/best way.
    2. I am not happy although it works because it is not making sense to me at all.....Why does the wrapper working though when i have transient variables; like UploadedFiles... and it's transient variables are lost why not mine.
    I am totally confused at this stage.. Need your help.
    Thanks

    any one??

  • Oracle adf file handling af: inputFile and convert to binary to send in

    Hi ...
    I want to try to do is select a file by a <af: inputFile and convert it to binary without having to upload it to the UCM .... I have some idea of how it would be something like this ....
    <af:form usesUpload="true">
    <af:inputFile label="Upload:"
    valueChangeListener="#{backingBean.fileUploaded}"/>
    <af:commandButton text="Begin"/>
    </af:form>
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import javax.faces.event.ValueChangeEvent;
    import javax.xml.namespace.QName;
    import javax.xml.ws.Holder;
    import org.apache.myfaces.trinidad.model.UploadedFile;
    import org.tempuri.*;
    String Binary = new String();
    public void fileUploaded(ValueChangeEvent event) {
    UploadedFile file = (UploadedFile) event.getNewValue();
    if (file != null)
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage(
    "Successfully uploaded file " + file.getFilename() +
    " (" + file.getLength() + " bytes)");
    context.addMessage(event.getComponent().getClientId(context), message);
    public void llamarWs(UploadedFile file){
    URL url;
    try {
    Holder<String> holder = new Holder<String>();
    Holder<Boolean> holderResponse = new Holder<Boolean>();
    url = new URL("10.10.20.152:8088/VTDWEntelSAEDWS/DWSAEDService.asmx?wsdl");
    DWSAEDServiceSoap servicePort = new DWSAEDService(url, new QName("http://tempuri.org/","DWSAEDService")).getDWSAEDServiceSoap();
    servicePort.uploadDocument(holder, arg1, arg2, arg3, arg4, arg5, holderResponse);
    String respuest = holder.value;
    } catch (MalformedURLException e) {
      but I can not make it work ...
    Edited by: 892270 on 16-Aug-2012 08:46

    User, please always tell us your jdev version as the solution might depend on it.
    Instead of posting some code, can you please elaborate on the use case? From the code I don'T understand what you try to do. Data (file) uploaded through the af:inputFile is binary. The file may only be a text file, but it might be an image. The inputFile doen not know as it only represents the data stream send from the client.
    In you code I don't see that you actually read the data from the stream, neither do I see any action on the stream. Can you describe what you mean by
    but I can not make it work ...You may read http://tompeez.wordpress.com/2011/11/26/jdev11-1-2-1-0-handling-imagesfiles-in-adf-part-1/ for more info about file handling in ADF
    Timo

  • OrdDocDomain and File Upload

    Hello All,
    JDeveloper 11.1.1.5, ADF Faces, ADF BC
    I have a database table with a ORDSYS.ORDDOC column. I have now gotten file upload to work and the document gets saved to the database correctly.
    There are a few problems though:
    1) Even with a newly created record, the inputFile component displays an "Update" button instead of a "Browse" button. The file name is displayed as "{}". This isn't user-friendly and tends to confuse the users.
    See: http://dox.bijesh.info/newrec.jpg
    2) When the user revisits an existing record the inputFile component has the same behaviour and the file is displayed as "{}" rather than the filename.
    See: http://dox.bijesh.info/existingrec.jpg
    3) I added an af:media component with the source set to "#{bindings.DocAttr.inputValue}" and rendered as a link. Clicking the Play Media link results in a 404 error looking for "faces/{}"
    What am I doing wrong?
    Is there a definitive tutorial from Oracle about using OrdDoc in an ADF application?

    thease are the configurations before you use af:inputFile in the page
    http://myfaces.apache.org/trinidad/devguide/fileUpload.html
    for should have useupload=true
    <af:form usesUpload="true"/>add the following entry to your WEB-INF/web.xml file:
    <filter>
    <filter-name>trinidad</filter-name>
    <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
    </filter>Second, map that filter to process all FacesServlet requests. For example, if you've named the FacesServlet "faces":
    > <servlet>
    > <servlet-name>faces</servlet-name>
    > <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    </servlet>then use the following filter-mapping:
    <filter-mapping>> <filter-name>trinidad</filter-name>
    > <servlet-name>faces</servlet-name>
    > </filter-mapping>

  • File upload program by jsf

    I am doing one file upload program using
    <af:inputFile label="File to Upload" columns="90"
    value="#{FileProcessor.uploadedFile}"/>
    component..
    in Jdeveloper 11g i am getting the correct result,
    but when i'm tryin to run it in Jdeveloper jdevstudio10131 it is giving this error.
    java.io.EOFException: Per-request disk space limits exceeded. at oracle.adfinternal.view.faces.webapp.UploadedFileImpl.loadFile(UploadedFileImpl.java:187) at
    i want this file upload application to run in ecplise..but there it is not working..do i need so some to import some jar files??
    tomat 5.0 i'm using there..
    Or is there any otherway to upload file using jsf component which should work in eclipse-tomcat enviornment also..
    please help
    thanks

    Mr BalusC,
    Yes Iam talking about a custom made upload component. The fileupload tutorials u send are good but my requirement is not meeting them. Among my requirements one is mutilple file uploads in the single view page. This is possible at present with my custom upload componet. Only if the problem gets solved. Any way once again please think on my problem and give your solution on it.
    Here is my problem:
    The problem is I have to access the components from view page which this kind of requirement possible in jsp by request parsing which results the key value pairs of the form components. This same thing/way I should get in backing bean from JSF view page.
    The solution I want may like as follows.
    Note this code is incorrect and wrong but for to understand my requirement.
    someobject.getComponentIdValue("clientID"); which returns a string value as d:\images\Tutle.jpg
    The clientID is upload file component' Id . In the request it may be the key associated with value as file complete path. By this kind of way my upload filter is able to get the orignal file. Ok i need this in my  backing bean to get the orignal filename to insert into the database. Please for this give the solution or reply.many thanx,
    vijaycanaan.

  • Removing the update button file from af:inputFile

    Is there any way to disable the update button from the af:inputFile after browse and uploading the file . Once its uploaded it should show the browse button again istead of showing the update button.

    Duplicate post: Removing the update button file from af:inputFile
    CM.

Maybe you are looking for

  • 10.5.6 update and coreaudio timestamping crashes?

    anybody else experiencing this? i'm having numerous audio application problems since the 10.5.6 update. Reaktor 5 crashes on launch. Many Max/MSP objects crash the app as soon as the audio engine is turned on. any ideas on what happened to coreaudio?

  • Transparent JPanel

    Hello! I have a JFrame with a background painted on it and everything works fine so far, but when I create a JPanel in the JFrame the JPanels grey colour is laying on top of the background. So my question is how to make the JPanel transparent. I read

  • I cant reset my Ipod on Itunes

    I reset my Ipod becuse i couldnt see my ipod in Itunes. Now it says i need to connect to Itunes. It can reset on Itunes but when its done, it says i shall connect to Itunes again, when i do that, the same happend again and again. What can i do ?

  • Panther or Tiger: which is better for iBook 600?

    Hi, I will have my aunt's old iBook for maintenance here over the weekend, and I wondered if anyone has any comparative experience on Panther (10.3, currently installed) and Tiger (10.4) on a 600MHz iBook. I know, I am lazy, but I don't look forward

  • Do i need to purchase Livecyle barcoded forms to decode regular barcode generated using Acrobat9pro?

    I am trying to use Barcode function on Adobe acrobat pro version..I could not figure out..how can i autopopulate forms using Barcode from one PDF document( form) to next PDF document( form)..i am missing something in between those?