...

View Full Version : check if file exists on ftp server problems



charbsk
08-13-2007, 10:29 PM
I made a PHP script that allows me to upload files to a FTP server, the script works perfect and uploads the files with no problems. My problem is that I have this peice of code checking if the file exists on the FTP server but I keep getting a msg saying that it doesn't exist, I'm not sure if my code is right or if i'm missing something or if I'm not using the code correctly. This is the piece of code that I'm unsure of :

if (file_exists($Filename))
{
echo "The file $Filename exists<BR>";
}
else
{
echo "The file $Filename does not exist<BR>";
}

Any help would be appreciated. Thanks

Here is the Full PHP Code:


<?php

// FTP Configuration
$FTP_User = "$username";
$FTP_Pass = "$password";
$FTP_Host = "www.evolution.tv";
$FTP_Root = "$dir";

// If the form was submitted
if (isset($action) && $action == "submit") {

if ($dir == "-1")
{
echo "Error: Please choose a File Type to upload";
exit;
}

// Connect to the ftp address
$Connect = ftp_connect($FTP_Host);

if (!$Connect)
{
echo "Error: Could not connect to ftp server<br>";
exit;
}

echo "Connected to $FTP_Host<br>";

// Login
$login = ftp_login($Connect, $FTP_User, $FTP_Pass);

//Turns passive mode on
$passive = ftp_pasv ($Connect, true );

echo "Current directory is now: " . ftp_pwd($Connect) . "<br>";

if (ftp_chdir($Connect, "$FTP_Root"))
{
echo "Current directory is now: " . ftp_pwd($Connect) . "<br>";
} else echo "Cannot change directory";

$contents = ftp_nlist($Connect, ".");

// output $contents
print_r($contents);

// check upload status
if (!passive){
echo "Failed to enter passive mode.<br>";
}
else {
echo "Entered passive mode.<br>";
}

if (!$login)
{
echo "Error: Could not log on as $FTP_User<br>";
ftp_quit($Connect);
exit;
}

echo "Logged in as $FTP_User<br>";

// Set the filename to be uploaded
$Filename = $_FILES['File_1']['name'];
$myFile = $_FILES['File_1'];

$destination_file = $FTP_ROOT.$_FILES['File_1']['name'];

// Set the local resource (the file that will be uploaded)
$file = $myFile['tmp_name'];

// If the file was successfully uploaded
$upload = ftp_put($Connect, $destination_file, $file, FTP_BINARY);

if (file_exists($Filename))
{
echo "The file $Filename exists<BR>";
}
else
{
echo "The file $Filename does not exist<BR>";
}

if (!$upload)
{
// Show success message
echo "There was a problem uploading $destination_file";
}
else
{
// Else show error message
echo "Successfully uploaded $Filename";

}
ftp_close($Connect);
}

?>

Form Code:


<html>
<head>
<title> PHP FTP Upload Test </title>
</head>
<body>
<table>
<form method="post" action="?action=submit" enctype="multipart/form-data">
<tr>
<td>Username:</td>
<td><input type="text" name="username" size="30"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" size="30"></td>
</tr>
<tr>
<td>File Type:</td>
<td><select name="dir">
<option value="-1">File Type</option>
<option value="/httpdocs/charbel/upload/">Image</option>
<option value="/httpdocs/charbel/upload/">PDF</option>
<option value="/httpdocs/charbel/upload/">MP3</option>
<option value="/httpdocs/charbel/upload/">Video</option>
</select>
</td>
</tr>
<tr>
<td>File:</td>
<td><input type="file" name="File_1" size="30"></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="Submit"></td>
</tr>
</form>
</table>
</body>
</html>

Inigoesdr
08-14-2007, 12:29 AM
Try using ftp_size() (http://www.php.net/manual/en/function.ftp-size.php).

meth
08-14-2007, 12:29 AM
According to the logic of the script, wouldn't you want to be testing for:



if (file_exists($destination_file))
{
echo "The file $Filename exists<BR>";
}
else
{
echo "The file $Filename does not exist<BR>";
}


You have the user file name assigned to $Filename; nothing to do with files in the target directory.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum