title: Upload file using Apache FTP Client does not work
body: <p>I have read a half dozen threads regarding this and I'm no where closer to a solution. No matter what I change I get ftp return code 500 "The command was not accepted and the requested action did not take place." and I'm not sure how to debug that.</p>
  
  <p>This is my site and I can connect with CoreFTP and read and write, so it does not seem to be a permissions issue. I've tried two different accounts, with this code and CoreFTP. One writes to the root and another is pointed to an "image_in" folder.</p>
  
  <p>imageData is a byte array with a length of 166578 and stream has the same length after the InputStream call. storeFile() always returns false with a return code of 500.</p>
  
  <p>One thread implied enterLocalPassiveMode() and enterRemotePassiveMode() were the culprits, but I have tried this code both with and without those lines and still I get a 500 return code.</p>
  
  <p>Any idea what I'm missing?</p>
  
  <p>Greg</p>
  
  <pre><code>class ImageUploadTask extends AsyncTask &lt;Void, Void, String&gt;{
      @Override
      protected String doInBackground(Void... unsued) {
          try {
              boolean status = false;
              try {
                  FTPClient mFtpClient = new FTPClient();
                  String ip = "my domain dot com";
                  String userName = "ftp79815757-0";
                  String pass = "my password";
  
                  mFtpClient.connect(InetAddress.getByName(ip));
                  mFtpClient.login(userName, pass);
                  int reply = mFtpClient.getReplyCode();
                  if (FTPReply.isPositiveCompletion(reply)) {
  
          //one thread said this would do the trick
                      mFtpClient.enterLocalPassiveMode();
                      mFtpClient.enterRemotePassiveMode();
  
                      InputStream stream = new ByteArrayInputStream(imageData);
  
                      mFtpClient.changeWorkingDirectory("/images_in");                        
                      String currdir = mFtpClient.printWorkingDirectory();
  
                      if (!mFtpClient.storeFile("remoteName.jpg", stream)) {
                          Log.e("FTPUpload", String.valueOf(mFtpClient.getReplyCode()));
                      }
  
                      stream.close(); 
                      mFtpClient.disconnect();
                  }
                  else {
                      Log.e("FTPConnected", String.valueOf(reply));
                  }
              } catch (SocketException e) {
                  e.printStackTrace();
              } catch (UnknownHostException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return null;
          } catch (Exception e) {
              if (dialog.isShowing())
                  dialog.dismiss();
              Toast.makeText(getApplicationContext(),
                      "Error",
                      Toast.LENGTH_LONG).show();
              Log.e(e.getClass().getName(), e.getMessage(), e);
              return null;
          }
      }
  </code></pre>