|
|
|
|
![]() ![]() |
Feb 9 2008, 05:06 PM
Post
#1
|
|
|
Newbie ![]() Group: Members Posts: 1 Joined: 9-February 08 Member No.: 57,609 |
Alright I am trying to have a PHP FTP Upload Form that allows the user to create the directory folder for where they want to upload there files to.
example: Main Directory: vainsoft.com There directory: vainsoft.com/modeling or vainsoft.com/photography But I dont want them to be able to upload things into the main directory, only sub-directories, is that possible with this coding that I have: CODE <? //uses $_FILES[] global array //see manual for older PHP version info //This function will be used to get the extension from the filename function get_extension($file,$length=-1){ $p = strrpos($file,"."); $p++; if($length!=-1){ $ext = substr($file,$p,$length); } if($length==-1){ $ext = substr($file,$p); } $ext = strtolower($ext); return $ext; } //Not good practice, but here anyway //change to suit your needs //also some have to be set in the ini //for this to correctly work //2meg max ini_set("upload_max_filesize","100M"); //turn on file uploads ini_set("file_uploads","1"); //set your temp dir ini_set("upload_tmp_dir","/tmp"); //set post size large enough to accomidate //3 100meg files and some overhead ini_set("post_max_size","180M"); ?> <html> <head> <title>VainSoft - Upload Form</title> </head> <body> <? //check to see if we have submited yet if($_POST["submit"]!="submit"){ //not yet so lets make the form ?> <p>Upload Images here, 10 images at a time, hit back after upload to upload more. (100M MAX)</p> <p> <form name="fileup" method="post" enctype="multipart/form-data" action="<? echo $PHP_SELF; ?>"> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <input type="file" name="userfiles[]"><br> <br> <!-- change below to your max --> <input type="hidden" name="MAX_FILE_SIZE" value="1000000000"> <input type="submit" value="submit" name="submit"> </form> </p> <? } //see if we have submited and that the files array has been set if(($_POST["submit"]=="submit")&&(is_array($_FILES['userfiles']))){ $ftp_user_name="******"; //change to ftp username $ftp_user_pass="******"; //change to ftp password $ftp_server="******"; //change to ftp url $ftp_dump_dir="******"; //change to destination directory //go through all the files for($x=0;$x<count($_FILES['userfiles']['name']);$x++){ //now we do some file checking //check to see if file is there if($_FILES['userfiles']['name'][$x]!="none"){ //file has a name //check filesize if($_FILES['userfiles']['size'][$x]!=0){ //file is larger than 0 bytes //Check to see if it is uploaded if(is_uploaded_file($_FILES['userfiles']['tmp_name'][$x])){ //file has been uploaded! //let the user know their file has be uploaded echo "file ".$_FILES['userfiles']['name'][$x]." uploaded!<br>"; //conect to 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!<br>"; echo "Attempted to connect to $ftp_server for user $ftp_user_name"; exit; } else { echo "Connected to $ftp_server! <br>"; //set PASV mode if(!ftp_pasv($conn_id,TRUE)){ echo "Could not enter PASV mode!"; } //rename to file#_date.ext $filename = $_FILES['userfiles']['name'][$x]; //$filename.= ".".get_extension($_FILES['userfiles']['name'][$x],3); //change directory if (@ftp_chdir($conn_id, $ftp_dump_dir)) { //maybe you want to make sure we are in the correct directory echo "Current directory is now : ", ftp_pwd($conn_id), "\n"; } else { //you want to know if it didn't work echo "Couldn't change directory\n"; } //upload the file and let the user know what happened if(ftp_put($conn_id,$filename,$_FILES['userfiles']['tmp_name'][$x],FTP_BINARY)){ echo "File ".$_FILES['userfiles']['name'][$x]." was sent successfully<br>"; echo "File was named ".$filename."<br>"; }else{ echo "There was a problem sending file ".$_FILES['userfiles']['name'][$x]."<br>";; } } // close the FTP stream ftp_close($conn_id); } else echo"File was not uploaded!<br>"; } } echo "<br>"; }//end for loop } //That's all folks! ?> </body> </html> Any help with this will be grateful. |
|
|
|
![]() ![]() |
Similar Topics
|
Lo-Fi Version | Time is now: 27th July 2008 - 02:08 AM |