Jump to content

[SOLVED] Renaming an uploaded file


ballouta

Recommended Posts

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>

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.