Bug #10835 Updated: File Upload
| From: | ksp at ideafix dot org | Date: | Fri, 15 Feb 2002 17:04:45 +0000 |
| Subject: | Bug #10835 Updated: File Upload | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-368@lists.php.net to get a copy of this message | ||
ID: 10835
Updated by: ksp@ideafix.org
-Reported By: fergiboy@home.com
+Reported By: ksp@ideafix.org
Status: Open
Bug Type: FTP related
Operating System: Windows 2k Server
PHP Version: 4.0.5
New Comment:
I've found the problem.
The ftp from IIS is configured to handle the "Directory Style" as
"MSDOS"...... you only have to change it to "UNIX" for php's ftp
functions work properly and handle spaces in paths and names.
Greetings
Previous Comments:
------------------------------------------------------------------------
[2002-02-14 03:55:48] ksp@ideafix.org
I have got a similar error with the ftp_chdir function.
I can't change to a directory with spaces in it , nor making the
strings replacement shown here...
I'm using:
Php server: W2k Server(no SP), Apache 1.3 , Php 4.0.5
ftp server: W2k Professional SP2, ftp of IIS, access anonymous.
Thanks in advance.
------------------------------------------------------------------------
[2001-05-12 22:24:49] fergiboy@home.com
I added an echo $a and an echo $b. I also some debug code to see if it
was connection to the ftp server. The output is:
C:\Te st.doc
Te st.doc
Connected
Ftp upload has failed!
So
$a=C:\Te st.doc
$b=Te st.doc
So it should upload the file as fallows:
$upload = ftp_put($conn_id, "C:\Te st.doc", "Te st.doc", FTP_BINARY);
I added the code:
$b = str_replace (" ", "\ ", $b);
to no avail :(
------------------------------------------------------------------------
[2001-05-12 20:04:49] derick@php.net
Hello,
can you try if this has anything to do with spaces in filenames?
(so try "C:\\Te st.doc").
If that's the case you need to escape your filename like this:
$b = strreplace (" ", "\ ", $b);
------------------------------------------------------------------------
[2001-05-12 19:45:22] fergiboy@home.com
an example:
$file = C:\\whatever.doc
that whould make
$a = C:\whatever.doc
that would make
$b = whatever.doc
The file will upload from C:\ but will not upload from the desktop.
------------------------------------------------------------------------
[2001-05-12 19:19:42] fergiboy@home.com
I created an upload script that will upload to my ftp server, the
variable $file comes from a different file:
$a = stripslashes ($file);
$b = basename ($a);
$ftp_server = "ftp_server";
$ftp_user_name = "user";
$ftp_user_pass = "password";
$dir = "ftp";
$conn_id = ftp_connect("$ftp_server");
$login_result = ftp_login($conn_id, "$ftp_user_name",
"$ftp_user_pass");
$cd = ftp_chdir ($conn_id, $dir);
$upload = ftp_put($conn_id, $b, $a, FTP_BINARY);
if (!$upload) {
echo "<b>Ftp upload has failed!</b><br>";
} else {
echo "Uploaded<br>";
}
$discon = ftp_quit($conn_id);
echo "<i>$b</i>";
This script will work most of the time, but when the file to be
uploaded is located in certain folders the file will not upload.
I made one change to the php.ini file to allow uploads greater than 2
megs.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=10835&edit=1