Home Answers Viewqa JSP-Servlet How to Upload a file directly to Oracle database using JSP or Servlets?

 
 


lissy
How to Upload a file directly to Oracle database using JSP or Servlets?
0 Answer(s)      2 years and a month ago
Posted in : JSP-Servlet

Hi

I want to upload a file(csv or excel) to Oracle 10g Database using JSP, here is my code which gives me an error..

Addfile.jsp

<%@ page import="java.sql.*" %>

<HTML>

    <BODY bgcolor="#99CCCC">
        <p>&nbsp;</p>

<br>
        <h2 align="center">Upload File to Oracle Database</h2>
        <form id="form1" enctype="multipart/form-data" action="UploadFile.jsp" method="post">
            <table align="center">

                <tr>
                    <td>Browse File  </td>
                    <td><input align="center" type="file"  name="csvfile" />
                </tr>
            </table>
            <p/>
            <center><input align="center" type="submit" value="Upload File"/></center>
        </form>


    </BODY>
</HTML>

UploadFile.jsp

[code]
<%@ page import="java.sql.*" %>
<%@ page import="java.io.IOException" %>
<%@ page import="java.io.PrintWriter" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.servlet.ServletException" %>
<%@ page import="javax.servlet.http.HttpServlet" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>

<HTML>

    <BODY bgcolor="#99CCCC">
        <p>&nbsp;</p>

<br>

<%
        try {
            // Apache Commons-Fileupload library classes
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload sfu  = new ServletFileUpload(factory);

            if (! ServletFileUpload.isMultipartContent(request)) {
                System.out.println("sorry. No file uploaded");
                return;
            }

            // parse request
            List items = sfu.parseRequest(request);
            FileItem  PartNo = (FileItem) items.get(0);
            String photoid =  PartNo.getString();

            FileItem SerialNo = (FileItem) items.get(1);
            String phototitle = SerialNo.getString();

            // get uploaded file
            FileItem file = (FileItem) items.get(2);

            // Connect to Oracle
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr");
            con.setAutoCommit(false);

            PreparedStatement ps = con.prepareStatement("insert into InventoryDB_Main(PartNo,SerialNo) values(?,?)");
            ps.setString(1, photoid);
            ps.setString(2, phototitle);
            // size must be converted to int otherwise it results in error
            ps.setBinaryStream(3, file.getInputStream(), (int) file.getSize());
            ps.executeUpdate();
            con.commit();
            con.close();
            out.println("File Uploaded Successfully.");
        }
        catch(Exception ex) {
            out.println( "Error --> " + ex.getMessage());
        }

%>

This is my code which is not working it throws error, index 1, size 1.

Please help me. I want to upload a file to Oracle 10g table directly. Help needed urgently.

Thanks in advance Lissy.

View Answers









Related Pages:

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.