Skip to Content
Author's profile photo Former Member

Upload Download in web dynpro java in SAP NetWeaver 7.2

Upload download UI components are used most commonly in making UI.There are lot of blogs and articles based on them.Here i am demonstrating to use these UI elements in a quick and simple steps.

The file is first uploaded in the server where the application is deployed it is simultaneously visible in the table below.

On clicking on filename ,the file is downloaded and can be viewed.

Step 1

Make a new Web Dynpro Component and add a component and view in it.

 

Step 2:

Add the following nodes and Attributes in the context of the view .The Resource attribute in both the nodes is of dictionary type “com.sap.ide.webdynpro.Uidefinitions.resource”. All the other attributes are of Type String.

 

Step 3:

Add 2 UI Elements FileUpload and a button in the view as shown.

 

Step 4:

Add an action Upload in the view and add it in event of the button.

Step 5:

Bind the resource property of uielement File upload to

context->node Document upload->Attribute Resource.

 Step 6:

In the View Add a Table by using applies Template and taking Documentdownload node alternatively you can add table and add three columns in it.

The View should now contain these UI elements

Resource->file Download

URL-> Text View

Filename ->Text View

Step 7:

Bind the resource property of file Download to

Context->node DocumentDownload->Attribute->resource and

text property to node DocumentDownload ->Attribute->Filename

   

Step 8:

Open the implementation of the view and add the below Lines of code in “onActionUpload”

 

CODE FOR UPLOAD AND DONLOAD BOTH SHOULD BE WRITTEN IN “onActionUpload” Action

public void onActionUpload(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
  {
    //@@begin onActionUpload(ServerEvent)
      //upload code
      try {
            File file = new File(“.\\TEST_DOCs\\”);
             if (!file.exists())
             {
              file.mkdirs();
             }

            String OriginalFileName = wdContext.currentDocumentsUploadElement().getResource().getResourceName();
            int length = OriginalFileName.lastIndexOf(“.”);
            String fileName = OriginalFileName.substring(0, length – 1);
            fileName += new Date().getTime();
            fileName += OriginalFileName.substring(length, OriginalFileName.length());

           
                FileOutputStream out = new FileOutputStream(“.\\TEST_DOCs\\”+ fileName);
                InputStream input = wdContext.currentDocumentsUploadElement().getResource().read(true);
                int c = -1;
                while ((c = input.read()) != -1)
                {
                    out.write(c);
                }
                out.close();
                input.close();
                wdComponentAPI.getMessageManager().reportSuccess(“Document Uploaded sucessfully”);
                wdContext.nodeDocumentsUpload().invalidate();
             
            //download code
           
            File file1 = new File(“.\\TEST_DOCs\\” + fileName);
            if (file1.exists())
            {
                String resourcePath = file1.getAbsolutePath();
                IDocumentsDownloadElement element = wdContext.createAndAddDocumentsDownloadElement();
                element.setFilename(OriginalFileName);
                element.setUrl(resourcePath);
                IWDResource resource = null;
                resource = WDResourceFactory.createResource(new FileInputStream(new File(resourcePath)),
                            OriginalFileName, WDWebResourceType.UNKNOWN, true);
                    element.setResource(resource);

            }
        } catch (Exception e) {
            //TODO Auto-generated catch block
            wdComponentAPI.getMessageManager().reportException(“FileNotFoundException”);
        }
     
    //@@end
  }

Step 9:

Rebuilt, build, deploy the project and run

The following result will be seen

When you click browse a window will open, select a file and click ok the file comes in the table

In the table when we click on file it gets open (First it will be downloaded)

 

Regards

Enjoy Web Dynpro

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Pradyut Sarma
      Pradyut Sarma
      Hi,

      Pretty nice write-up. But having said that, I would like to add here that this looks more like a how-to-guide/step-by-step guide to achieve a particular use case. I would normally search for something like this within the Wiki/Articles area rather than within the blogs area.
      You could check out this link "Blog This" or "Wiki It" for more info on the same.

      Nonetheless, very useful article indeed 😉

      Thanks and Best Regards,
      Pradyut.

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Hi
      thanx prayadut for valuable comments I am new to blogging in sdn.

      I will take care of this in future.
      Kind regards
      suresh

      Author's profile photo Former Member
      Former Member
      Hi sureshjoshi.mp,

      will the coding in step 8 also works under BPM 7.3

      Kind regards,
      Christoph

      Author's profile photo Former Member
      Former Member
      thank you for your shared.