php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #68854 Cannot FTP_Put over SSL
Submitted: 2015-01-19 07:46 UTC Modified: 2015-01-22 07:32 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:2 of 2 (100.0%)
Same Version:1 (50.0%)
Same OS:2 (100.0%)
From: ian dot gooch at weatherquest dot co dot uk Assigned:
Status: Open Package: FTP related
PHP Version: 5.5.20 OS: linux
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2015-01-19 07:46 UTC] ian dot gooch at weatherquest dot co dot uk
Description:
------------
I've tried and tried to ftp_put over a secured connection. Errors returned are 

 ftp_put(): Opening BINARY mode data connection.
 Type set to I

I've tried to  things like ftp_pasv, but no joy.

I know the connection work because Dreamweaver connects are uploads fine.

Thanks,


Test script:
---------------
//FTP FILE
$FTPServer="******";
$Port=21;
$User="******";
$Pass="******";
echo "$FTPServer | $Port | $User | $Pass <br>";
//===================================================
$DEST="******";
$NAME="SomeFile.csv";
$DESP="$DEST$NAME";
//======================================================
//SET UP CONNECTION
$FTPCon       = ftp_ssl_connect($FTPServer,$Port) or die("Cannot connect to server!");
$LOGINR       = ftp_login($FTPCon,$User,$Pass)    or die("Cannot login!");
//ftp_pasv($FTPCon,true);
ftp_set_option($FTPCon, FTP_TIMEOUT_SEC, 10);
//--------------------------------------------------------------------
//CHECK CONNECTION
if ((!$FTPCon) || (!$LOGINR)) {
echo "FTP connection has failed!";
exit;
}else{
echo "Connected to $FTPServer,$Port, for user $User <br/>";
//CHANGE DIR
echo "Current directory: " . ftp_pwd($FTPCon) . "\n";
echo "<br>";
//====================================================
if (ftp_chdir($FTPCon, "*******")) {
echo "Current directory is now: " . ftp_pwd($FTPCon) . "<br>";
}else{ 
echo "Couldn't change directory <br>";
echo "<br>";
//==================================================
}
//UPLOAD FILE
$UPLoad = ftp_put($FTPCon,$NAME,$csvOut,FTP_BINARY);
if (!$UPLoad) {
echo "FTP upload of $NAME has failed! <br/>";
}else{
echo "Uploading $name Completed";
}
}
ftp_close($FTPCon);
echo "Bye Bye you";
//---------------------------------------------------------------------

Expected result:
----------------
The file uploads (ftp) to a secured server


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-01-21 23:36 UTC] cmbecker69 at gmx dot de
Have you considered asking in a support forum or mailing list,
such as php-general@lists.php.net before filing a bug report?

Anyhow, the following statement looks suspicious:

  ftp_set_option($FTPCon, FTP_TIMEOUT_SEC, 10);
 [2015-01-22 07:32 UTC] ian dot gooch at weatherquest dot co dot uk
Hi,
Yes. I've asked on Stack overflow, but with no joy.
When I have google'ed the problem, it would appear lots of programmers have had the same issue, with some resulting in using Curl instead.

I added the ftp_set_option($FTPCon, FTP_TIMEOUT_SEC, 10); as I got fed up waiting for the default 60 secs timeout.
Thanks,
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Tue Nov 19 00:01:39 2019 UTC