Hello Community.


I am trying to upload a file (image/txt/word/pdf) in the ofbiz application 
using ftl and java method. After parsing the file , item listed in the list is 
coming as null. Please help.



My FTL code is a simple form like below with name testUpload.ft

​

<form action="uploadFile" method="post" enctype="multipart/form-data"> 

    <input type="file" name="file" />

    <input type="submit" value="Upload" />

</form>



My controller is configured as follows:



<request-map uri="fileUplodingFtl">

<security https="true" auth="true"/>

<response name="success" type="view" value="fileUplodingFtl"/>

</request-map>

  

<view-map name="fileUplodingFtl" type="screen" 
page="component://xerus/widget/XerusScreens.xml#fileUplodingFtl"/>



<request-map uri="uploadFile"> 

    <security https="true" auth="true"/>

    <event type="java" path="com.apache.xerus.services.FileUpload" 
invoke="uploadFile"/>

    <response name="success" type="view" value="fileUplodingFtl"/>

</request-map>



In the java class FileUpload.java:



package com.apache.xerus.services; 



import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import java.io.File;

import java.nio.ByteBuffer;

import java.util.HashMap;

import java.util.List;

import java.util.Locale;

import java.util.Map;

import javax.servlet.ServletConfig;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.net.URLEncoder;

import java.util.Locale;

import org.apache.commons.io.FilenameUtils;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.net.HttpURLConnection;

import java.net.URL;

import org.apache.ofbiz.base.util.Debug;

import org.apache.ofbiz.base.util.GeneralException;

import org.apache.ofbiz.base.util.GeneralRuntimeException;

import java.util.Iterator;

import org.apache.ofbiz.entity.Delegator;

import org.apache.ofbiz.entity.GenericEntityException;

import org.apache.ofbiz.entity.GenericValue;

import org.apache.ofbiz.service.LocalDispatcher;

import org.apache.ofbiz.base.util.UtilGenerics;

import org.apache.ofbiz.base.util.UtilHttp;

import javax.servlet.http.HttpSession;

import org.apache.ofbiz.base.util.FileUtil;

import org.apache.ofbiz.base.util.UtilProperties;

import org.apache.ofbiz.service.ServiceUtil;





public class FileUpload {



    public static final String module = FileUpload.class.getName();

   

    public static String uploadFile(HttpServletRequest request, 
HttpServletResponse response) {

      

  // Check if the request is a multipart request

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);



        if (isMultipart) {

            // Create a file upload handler

            DiskFileItemFactory factory = new DiskFileItemFactory();

            ServletFileUpload upload = new ServletFileUpload(factory);



            try {

                // Parse the request

                List<FileItem> items = upload.parseRequest(request);

                System.out.println(" Items present : "+items);

                // Process each uploaded file

                for (FileItem item : items) {

                    if (!item.isFormField()) {

                        // Get the uploaded file name

                        String fileName = item.getName();

                        System.out.println("fileName : "+fileName);

                        // Get the uploaded file content

                        byte[] fileContent = item.get();

                        System.out.println("fileContent : "+fileContent);

                        // Process the file as needed (e.g., save to disk, 
store in database, etc.)

                        // ...

                    }

                }

            } catch (FileUploadException e) {

                Debug.logError(e, module);

                Debug.logError("[FileUpload.FileUpload] " + e.getMessage(), 
module);

            }

        } else {

            System.out.println("It is not multipart");

        }





I have added the screen in XerusSceen.xml and logging in the app by typing 
localhost:8443/xerus/control/fileUplodingFtl and the page is opening but when I 
am selecting the file and pressing the Upload button, I can see in the logs of 
ofbiz  as  ' Items present: {} '. I am wondering , what is wrong with this 
code? Why is there no file present



Please guide me how to achieve uploading of files in OFbiz



Thank You



Regards,

Swati

Reply via email to