How to Upload a file from client to server using OFBIZ?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

How to Upload a file from client to server using OFBIZ?

SIVAKUMAR
Hi all,

  Im new to ofbiz.So is my question is have any mistake forgive me for my mistakes.Im new to ofbiz so i did not know some terminologies in ofbiz.Sometimes my question is not clear because of lack of knowledge in ofbiz.So try to understand my question and give me a good solution with respect to my level.Because some solutions are in very high level cannot able to understand for me.So please give the solution with good examples.

  My problem is i created a project inside the ofbiz/hot-deploy folder namely "productionmgntSystem".Inside the folder "ofbiz\hot-deploy\productionmgntSystem\webapp\productionmgntSystem" i created a .ftl file namely "app_details_1.ftl" .The following are the coding of this file

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
        <script TYPE="TEXT/JAVASCRIPT" language=""JAVASCRIPT"> function uploadFile() { //alert("Before calling upload.jsp"); window.location='<@ofbizUrl>testing_service1</@ofbizUrl>' } </script>    </head>
       
        <form action="<@ofbizUrl>logout1</@ofbizUrl>" enctype="multipart/form-data" name="app_details_frm">
        <center style="height: 299px; ">
                                                                                                                                                                                                                                                                                                       
                   

APPLICATION DETAILS

                   
               
Application name :                         <input name="app_name_txt" id="txt_1" value=" " />
                   
Excell sheet         :                         <input type="file" name="filename"/>
                   
                       
                       <input type="submit" name="logout_cmd" value="logout"/>
                   
                       
                        <input type="button" name="upload1_cmd" value="Upload" onclick="uploadFile()"/>
                   
        </center>
    </form>
</html>


the following coding is present in the file "ofbiz\hot-deploy\productionmgntSystem\webapp\productionmgntSystem\WEB-INF\controller.xml"

......
.......
........
<request-map uri="testing_service1">
            <security https="true" auth="true"/>           
            <event type="java" path="org.ofbiz.productionmgntSystem.web_app_req.WebServices1" invoke="testingService"/>
            <response name="ok" type="view" value="ok_view"/>
            <response name="exception" type="view" value="exception_view"/>         
        </request-map>
..........
............
..........
<view-map name="ok_view" type="ftl" page="ok_view.ftl"/>       
<view-map name="exception_view" type="ftl" page="exception_view.ftl"/> 
................
.............
.............



The following are the coding present in the file "ofbiz\hot-deploy\productionmgntSystem\src\org\ofbiz\productionmgntSystem\web_app_req\WebServices1.java"

import java.io.FileOutputStream;
import java.io.IOException;


public class WebServices1
{
    public static String testingService(HttpServletRequest request, HttpServletResponse response)
    {
        //int i=0;
        String result="ok";
        System.out.println("\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- Start");
        String contentType=request.getContentType();
        System.out.println("\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- contentType : "+contentType);
        String str=new String();
        // response.setContentType("text/html");
        //PrintWriter writer;
        if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0))
        {
            System.out.println("\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) after if (contentType != null)");
            try
            {
                // writer=response.getWriter();
                System.out.println("\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - try Start");
                DataInputStream in = new DataInputStream(request.getInputStream());
                int formDataLength = request.getContentLength();
                byte dataBytes[] = new byte[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
                FileOutputStream fileOut = new FileOutputStream("/"+saveFile);
                fileOut.write(dataBytes, startPos, (endPos - startPos));
                fileOut.flush();
                fileOut.close();
                System.out.println("\n\n\t**********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - try End");
            }
            catch(IOException ioe)
            {
                System.out.println("\n\n\t*********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - Catch IOException");
                //ioe.printStackTrace();
                return("exception");
            }
            catch(Exception ex)
            {
                System.out.println("\n\n\t*********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) - Catch Exception");
                return("exception");
            }
        }
        else
        {
            System.out.println("\n\n\t********************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response) else part");
            result="exception";
        }
        System.out.println("\n\n\t*************************************\n\tInside WebServices1.testingService(HttpServletRequest request, HttpServletResponse response)- End");
        return(result);
    }
}


  I want to upload a file to the server.The file is get from user "<input type="file"..> tag in the "app_details_1.ftl" file & it is updated into the server by using the method "testingService(HttpServletRequest request, HttpServletResponse response)" in the class "WebServices1".But the file is not uploaded. Give me a good solution for uploading a file to the server.

Thanks & Regards,
Sivakumar.J
Reply | Threaded
Open this post in threaded view
|

Re: How to Upload a file from client to server using OFBIZ?

SIVAKUMAR
Hi all,
  I got the solution.Now its working for me.I get this solution after the long war with ofbiz.I tried with so much effort.Atlast i get it.

  Visit the link for the solution http://stackoverflow.com/questions/4506243/how-to-upload-a-file-from-client-to-server-using-ofbiz

Thanks & Regards,
Sivakumar.J