Forum Moderators: coopster
<input type=text name=pagename>
<textarea name=pagedesc></textarea>
<input type=file name=uploadfile>
what I want to do is change the name of the file based on the $pagename and $pagedesc vars but i want to keep the file extention
this would be my rule
// the name will be exploded (later) at {*} for any confusion
$filename = date(mdy)."{*}".stripslashes($pagename)."{*}".stripslashes(ereg_replace("\n","<br>",$pagedesc))[/green].$extention
how would I
1. find the $extention
2. put this into an upload script (temp folder at tmp/ final at files/
i really appreciate any help
preg_match("([a-zA-Z\.]{3,4}$)", $_FILES['uploadfile']['name'], $ext);
$extension = $ext[0];
Then simply use move_uploaded_file() to move the file from tmp/ to final/
Hth,
John Erazo
upload failed
Array ( )
the empty array shows that no data is being passed in $_FILES
<?
if(!$uploadfile ¦¦!$pagename ¦¦!$pagedesc){
echo '<form action="'.$PHP_SELF.'" method="POST"><table><tr><td>Your Name:</td><td><input type="text" name="pagename"></td></tr>
<tr><td>Description of file:</td><td><textarea name="pagedesc" cols="100" rows="3"></textarea></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<tr><td>File:</td><td><input type="file" name="uploadfile"></td></tr>
<tr><td colspan=2 align=center><input type=submit value=upload></td></tr></table></form>';
} else {
preg_match("([a-zA-Z\.]{3,4}$)", $_FILES['uploadfile']['name'], $ext);
$extension = $ext[0];
$filename = "files/".date(mdy)."{*}".stripslashes($pagename)."{*}".stripslashes(ereg_replace("\n","\\n",$pagedesc)).$extention;
if (!move_uploaded_file($_FILES['uploadfile']['tmp_name'],$filename)) {
echo "upload failed<br>";
print_r($_FILES);
exit;
die;
}
header("Location:index.php");
}
?>
preg_match("(\.[_0-9a-zA-Z-]{3,4}$)", $_FILES['uploadfile']['name'], $ext);
$extention = $ext[0];
it will match file extension with alpha-numeric characters including underscore and dash, with 3 to 4 characters in length.
BTW, I have previously spelled mine with '$extension' while yours was '$extention'.
<?
if(!$uploadfile ¦¦!$pagename ¦¦!$pagedesc){
echo '<form action="'.$PHP_SELF.'" method="POST"><table><tr><td>Your Name:</td><td><input type="text" name="pagename"></td></tr>
<tr><td>Description of file:</td><td><textarea name="pagedesc" cols="100" rows="3"></textarea></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<tr><td>File:</td><td><input type="file" name="uploadfile"></td></tr>
<tr><td colspan=2 align=center><input type=submit value=upload></td></tr></table></form>';
} else {
preg_match("([a-zA-Z\.]{3,4}$)", $_FILES['uploadfile']['name'], $ext);
$extention = $ext[0];
$filename = "files/".date(mdy)."{~}".stripslashes($pagename)."{~}".stripslashes(ereg_replace("\n","\\n",$pagedesc)).$extention;
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'],$filename)) {
header("Location:index.php");
} else {
echo "upload failed<br>";
print_r($_FILES);
exit;
die;
}
}
?>
it still does the same thing, any ideas?
this line (slightly modified since my last post)
$filename = "files/".date(mdy)."{~}".stripslashes(htmlspecialchars($pagename))."{~}".ereg_replace("\n","<br>",stripslashes(htmlspecialchars($pagedesc))).$extention;
only adds the <br> it doesn't get rid of the line break i think i need to add something about \r or something like that but i'm not sure how to add it...thanks for any help
new problem, reading my created files
i can't figure out how to properly encode the $file variable in index.php so that the browser will follow the link if i copy the url and paste it in the browser it works but clicking it doesn't
addtest.php
<?
if(!$uploadfile ¦¦!$pagename ¦¦!$pagedesc){
echo '<form action="'.$PHP_SELF.'" method="POST" enctype="multipart/form-data"><table><tr><td>Your Name:</td><td><input type="text" name="pagename"></td></tr>
<tr><td>Description of file:</td><td><textarea name="pagedesc" cols="100" rows="3"></textarea></td></tr>
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<tr><td>File:</td><td><input type="file" name="uploadfile"></td></tr>
<tr><td colspan=2 align=center><input type=submit value=upload></td></tr></table></form>';
} else {
preg_match("([a-zA-Z\.]{3,4}$)", $_FILES['uploadfile']['name'], $ext);
$extention = $ext[0];
$filename = "files/".date(mdy)."{~}".stripslashes(htmlspecialchars($pagename))."{~}".ereg_replace("\r\n","<br>",stripslashes(htmlspecialchars($pagedesc))).$extention;
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'],$filename)) {
header("Location:index.php");
} else {
echo "upload failed<br>";
print_r($_FILES);
exit;
die;
}
}
?>
index.php
<?
$dir="files/";
$d=dir($dir);
$html="";
while($file = $d->read()){
if(($file!= ".")&&($file!= "..")){
$m = $file;
$m = explode("{~}",$m);
$date = $m[0];
$date = $date[0].$date[1]."/".$date[2].$date[3]."/".$date[4].$date[5].$date[6].$date[7];
$html .= "\n<tr><td>$date</td><td>".stripslashes($m[1])."</td><td>".stripslashes($m[2])."<br><<a href=\"files/".$file."\">Open</a>></td></tr>";
}
}
$d->close();
?><html><head>
<title>Message Board</title></head><body>
<h1><font color="green">Message Board</font></h1><br>
<table bgcolor="silver" width=75% align=left border=1>
<tr bgcolor=blue><td><h2><font color=yellow>Date:</font></h2></td><td><h2><font color=yellow>Posted By:</font></h2></td><td><h2><font color=yellow>Message:</font></h2></td></tr>
<?=$html?>
</table>
nl2br('hello
this text has
line breaks');
renders
hello<br />
this text has<br />
line breaks