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="[email protected]";
   $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 = "[email protected]";

   // 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
https://forums.phpfreaks.com/topic/117493-solved-renaming-an-uploaded-file/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.