i currently working on web based ftp system where this system will upload and retrieve file from ftp server in red hat linux 9.0.
here is the php cording for the upload file:-

1.upload.html

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>user name </td>
<td><input name="username" type="text" id="username"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>password</td>
<td><input name="password" type="password" id="password"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>File name </td>
<td><input type="file" name="file"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Upload"></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table> 
</form>
</body>
</html>

2.upload.php

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
//$ftp_server=$_POST['server'];
$ftp_server = "10.1.45.21";
$ftp_user_name=$_POST['username'];
$ftp_user_pass=$_POST['password'];
$source_file=$_FILES['file']['name'];// retrieve name of the file to be uploaded
$destination_file=$source_file;
// make a connection to the ftp server 
$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id , $ftp_user_name , $ftp_user_pass); 

// check connection 
if((!$conn_id)||(!$login_result)){ 
echo "FTP connection has failed!" ; 
echo "Attempted to connect to $ftp_server for user $ftp_user_name" ; 
exit; 
}else{ 
echo "Connected to $ftp_server, for user $ftp_user_name" ; 
} 


// upload the file 
$upload = ftp_put($conn_id,$destination_file,$source_file,FTP_ASCII ); 

// check upload status 
if(!$upload){ 
echo "FTP upload has failed!" ; 
}else{ 
echo "Uploaded $source_file to $ftp_server as $destination_file" ; 
} 

// close the FTP stream 
ftp_close($conn_id); 
?> 
</body>
</html>

when i execute this code it give me the following error:-

Connected to 10.1.45.21, for user sanya
Warning: ftp_put(forum.txt) [function.ftp-put]: failed to open stream: No such file or directory in D:\AppServ2\AppServ\www\FTP\test\upload.php on line 32
FTP upload has failed!

Can any one help me plz..

$source_file is just the name of the file. The file has not yet been moved to a permanent location using move_uploaded_file(). You'll have to do that first.

i did as you said but it still does not work. here is the cording that i add in upload.php file before close the ftp connection:-

// upload the file 
//$upload = ftp_put($conn_id,$destination_file,$source_file,FTP_ASCII ); 
if (move_uploaded_file($source_file, "/home/admin")) {
        print "Received {$_FILES['file']['name']} - its size is {$_FILES['file']['size']}";
    } else {
        print "Upload failed!";
    }

Edited 3 Years Ago by Dani: Formatting fixed

if i use the cording below replace the cording that i post previously:-

$destination_dir = 'home/admin';
$destination_file = $uploaddir . basename($_FILES['file']['name']);
if (move_uploaded_file($source_file, $destination_file)) {
        print "Received {$_FILES['file']['name']} - its size is {$_FILES['file']['size']}";
    } else {
        print "Upload failed!";
    }

it give me a successful message showing that the file upload successfully. but if i try to search the file in /home/admin dir in linux....there were no files there.is my upload file works and where do i check for the uploaded files. help me plz..

Edited 3 Years Ago by Dani: Formatting fixed

i success in uploading file to FTP server. i use the cording below:-

$destination_dir = $_SERVER;
$destination_file = $uploaddir . basename($_FILES);
$upload = ftp_put($conn_id,$destination_file,$source_file,FTP_ASCII );

thank you pritaeas.

This question has already been answered. Start a new discussion instead.