ballouta Posted July 31, 2008 Share Posted July 31, 2008 Hello I have this uplaod form, it is 100% working but i need now to rename the uploaded file so it is NOT more than 9 characters. I searched google but samples i found didnt work correctly with me. I used this: $position=9; $post = substr($name,$position,9); $name = $post; if I echo the $post, it gives H.ask and the bad thing is that I am still getting the file to my email in its long name! here's my code, the file i am uploading is: XXXXXXXXXH.ask PLEASE help <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <script type="text/javascript"> /* Block multiple form submission script- By JavaScriptKit.com Visit http://www.javascriptkit.com for this script and more This notice must stay intact for use */ //Enter error message to display if submit button has been pressed multiple times below. //Delete below line if you don't want a message displayed: var formerrormsg="You\'ve attempted to submit the form multiple times.\n Please wait till the first file is sent." function checksubmit(submitbtn){ submitbtn.form.submit() checksubmit=blocksubmit return false } function blocksubmit(){ if (typeof formerrormsg!="undefined") alert(formerrormsg) return false } </script> <title>Send Your ask File</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php include('CMS/global.inc.php'); $user ="mdaouk"; //echo "$user"; if ($_SERVER['REQUEST_METHOD']=="POST"){ $size = $_FILES['filename']['size']; $name = $_FILES['filename']['name']; $array = explode( '.' , $name); $date = date("y-m-d"); //here where i was trying to make my tests $length=strlen($name); echo "the file name length = $length<br>"; $position=9; $post = substr($name,$position,9); echo "The final name = $post<br>"; // we'll begin by assigning the To address and message subject $to="malekface@hotmail.com"; $subject="File to unlock"; // get the sender's name and email address // we'll just plug them a variable to be used later //$from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">"; $from = "daouk@daouk.dk"; // generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; // store the file information to variables for easier access $tmp_name = $_FILES['filename']['tmp_name']; $type = $_FILES['filename']['type']; $name = $_FILES['filename']['name']; $size = $_FILES['filename']['size']; //check if the user has credits before sending a file $query = "SELECT * FROM `credits` WHERE `user` = '$user' "; $result = mysql_query($query); $row = mysql_fetch_array($result); // here we'll hard code a text message // again, in reality, you'll normally get this from the form submission $message = "A New File from GSCLOnline.org: $name"; // if the upload succeded, the file will exist if (file_exists($tmp_name) && $array[1] == 'ask' && is_uploaded_file($tmp_name)){ // open the file for a binary read $file = fopen($tmp_name,'rb'); // read the file content into a variable $data = fread($file,filesize($tmp_name)); // close the file fclose($file); // now we encode it and split it into acceptable length lines $data = chunk_split(base64_encode($data)); $query=" INSERT INTO `uploaded` ( `user` , `sentfile` , `date` , `received`) VALUES ('$user', '$name', '$date', 'N')"; $query_result = mysql_query ($query, $dbh); // now we'll build the message headers $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\""; // next, we'll build the message body // note that we insert two dashes in front of the // MIME boundary when we use it $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // now we'll insert a boundary to indicate we're starting the attachment // we have to specify the content type, file name, and disposition as // an attachment, then add the file content and set another boundary to // indicate that the end of the file has been reached $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; // now we just send the message if (@mail($to, $subject, $message, $headers)) echo "Your ask file was sent! <br> <b>Warning:</b> do NOT refresh this page! Each refresh costs you 1 credit.<br> "; else echo "Failed to send file, Please contact GSCL Store."; } else { if ($row[num] <= 0) echo "Sorry! You do NOT have enough credits."; else echo "The file you are trying to send is NOT valid."; } //$user= $_GET['user']; echo" <input type='hidden' name='user' value='$user'>"; } else { // if the form was posted ?> <p>Please upload your ask file.</p> <p dir="ltr"><font face="Arial" style="font-size: 11pt" color="#FF0000">Warning: Do not press submit button more than once, or you will loose credits.</font></p> <p dir="ltr">Your file should NOT exceed 9 characters.</p> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1"> <p>File: <input type="file" name="filename"></p> <p><input type="submit" value="Submit" onClick="return checksubmit(this)"></p> </form> <?php } ?> </body> </html> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.