I am new to PHP and I need some help in the below code. The below code is working fine but I need to add a "Functionality to be added in the below code, so that if any New File is uploaded it should auto increment in a series. For Example: 00004001, 00004002, 00004003.... and so on.

Please help...! Below is the existing code. Currently it Uploads the exact file name to the remote server.

<?php
if ( empty( $_FILES['file'] ) ) {
    return;
}
$ftp_server = "xx.xx.x.xxxx";
$ftp_user_name = "xxxxxxx";
$ftp_user_pass = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
$destination_file = "";
$source_file = $_FILES['file']['tmp_name'];

// set up basic connection
$conn_id = ftp_connect($ftp_server);


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

//ftp_pasv($conn_id, true); 

// 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 "<p align=center> Your Image has been Uploaded if you dont't see any Error Msg Below</p> ";
}

// upload the file

$destination_folder = "/";
$destination_file = $destination_folder . "/" . basename($_FILES['file']['name']);
//ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// check upload status
if (!$upload) { 


echo "<p align=center> **File Upload Has Failed &#128558</p> ";

} else {
echo "";
}

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

Please Help....!!!

I had a similar problem but I didn't want to keep track of a number like yours which would have me setup/use SQL to hold/update that number. My solution was to use the date and time for part of the filename. This way I had information I needed about the file in the filename and it was easy to get a listing of files for a day or days. If I had numbers, well, more work and not exactly what we needed.
Why did we go this way? The files were from an automatic tester so with a simple ls or dir command I could tell how many tests completed on a day. In parting, this is offered as a possible solution without any offer of writing your codes.

Hmmmm,interesting

rproffitt's solution would be ideal.

Another way could be without resorting to a database.

  1. Read the folder where the file will be saved.
  2. If the folder is empty, add 000001 to the filename, then upload the file.
  3. The folder is not empty and, assuming that previous files were saved with a number sequence, fetch the last file uploaded (via timestamp), then get the file's sequence number, add 1, use that for the new file and upload it.

Good luck!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.