1

I am using Apache Commons to upload a local files to FTP using storeFile() method. It works only for .txt files but not for any other files like MS-word, excel, images, zip fiels etc. The file is uploading but content is not there in that file.

Code

   FileInputStream fis = null;
   fis = new FileInputStream(localFile);
   boolean res = jBakFTPsyncUtility.client.storeFile(localFileName, fis);
   fis.close();

Can anybody help me in this regard?

Community
  • 1
  • 1
  • 1
    you need to set BINARY transfer mode, pls take a look at http://stackoverflow.com/questions/3145768/transfer-raw-binary-with-apache-commons-net-ftpclient – jdevelop Sep 17 '12 at 08:15

1 Answers1

0

Hi to do this you should have enctype="multipart/form-data in the form page as given below.

UPLOAD FORM HTML:

<html>
<head><title>Upload page</title></head></p> <p><body>
<form action="./index.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <center>
        <table border="2">
            <tr>
                <td align="center"><b>Multipale file Uploade</td>
            </tr>
            <tr>
                <td>
                    Specify file: <input name="file" type="file" id="file">
                <td>
            </tr>
            <tr>
                <td>
                    Specify file:<input name="file" type="file" id="file">
                </td>
                </tr>


            <tr>
                <td align="center">
                    <input type="submit" name="Submit" value="Submit files"/>
                </td>
            </tr>
        </table>
        <center>
     </form>
    </body>
</html>

Upload JSP:

  <%@ page import="java.util.List" %>
   <%@ page import="java.util.Iterator" %>
   <%@ page import="java.io.File" %>
   <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
   <%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
   <%@ page import="org.apache.commons.fileupload.*"%>
   <%@ page contentType="text/html;charset=UTF-8" language="java" %>
   <center><table border="2">
        <tr><td><h1>Your files  uploaded </h1></td></tr>
   <%
 boolean isMultipart = ServletFileUpload.isMultipartContent(request);
 if (!isMultipart) {
 } else {
       FileItemFactory factory = new DiskFileItemFactory();
       ServletFileUpload upload = new ServletFileUpload(factory);
       List items = null;
       try {
           items = upload.parseRequest(request);
       } catch (FileUploadException e) {
           e.printStackTrace();
       }
       Iterator itr = items.iterator();
       while (itr.hasNext()) {
       FileItem item = (FileItem) itr.next();
       if (item.isFormField()) {
       } else {
           try {
               String itemName = item.getName();
               File savedFile = new File("C:\\ealvin@hp.com\\upload\\"+itemName);
               item.write(savedFile);  

               out.println("<tr><td><b>Your file has been saved at the loaction:</b></td></tr><tr><td><b>"+config.getServletContext().getRealPath("/")+"uploadedFiles"+"\\"+itemName+"</td></tr>");
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
       }
   }
   %>
    </table>
   </center>

Alvin Pradeep
  • 618
  • 4
  • 13
  • Thank u for your answer, I am doing a desktop app, not web app. Can you please answer me if it is a desk top app? – user1676876 Sep 17 '12 at 08:12