I have this image upload script, and it works perfectly. It uploads an image to my server and the image is named after the same name as the image. I would however like the image that to be named after the person's name (that they should type in before the time). This part is not in the code. Pls could someone help me, would be much appreciated. Here is a snippet of the existing code: <form action="scripts/ajaxupload.php?filename=name&maxH=300" method="post"> <p> <input type="file" name="name" onchange="ajaxUpload(this.form,'scripts/ajaxupload.php?filename=name&maxH=300' /> </p> </form> THanks
Do you mean that upload is enabled only to registered and logged users or the should provide their name in the same form? If uploading is enabled only for logged user I see no problem in getting their name. If you want to add a field to the form, then please, show us your ajaxUpload() javascript function (use [Ñode] tags) and source of scripts/ajaxupload.php
First thing, form as you show here is not working So I modified it a little bit so it does not show errors; <div id="indicator"></div> <form action="ajaxupload.php?maxH=300" method="post" enctype="multipart/form-data"> <p> <input type="text" name="filename"> </p> <p> <input type="file" name="name" onchange="ajaxUpload(this.form,'ajaxupload.php?maxH=300','indicator','loading')" /> </p> <input type="submit"> </form> HTML: I also added filename field where you can type desired name of file. In that case your php script is not modified. But please be careful letting your user to name files on your server. My ajaxupload.php had only this: <?php print_r($_REQUEST); ?> PHP: And as I've see that field (filename) is sent to server: Array ( [maxH] => 300 [filename] => reallyworks ) Code (markup):
Thanks, That last part does not seem to be working.. I get this error: Parse error: syntax error, unexpected '[', expecting ')'
DylanM , sorry I didn't look carefully in ajaxupload.php So your form will be like that: <div id="indicator"></div> <form action="ajaxupload.php?filename=name&maxH=300" method="post" enctype="multipart/form-data"> <p> <input type="text" name="desiredname"> </p> <p> <input type="file" name="name" onchange="ajaxUpload(this.form,'ajaxupload.php?filename=name&maxH=300','indicator','loading')" /> </p> <input type="submit"> </form> HTML: And ajaxupload.php : <?php function uploadImage($fileName, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH = null, $desiredname = ''){ $folder = $relPath; $maxlimit = $maxSize; $allowed_ext = "jpg,jpeg,gif,png,bmp"; $match = ""; $filesize = $_FILES[$fileName]['size']; if($filesize > 0){ $filename = strtolower($_FILES[$fileName]['name']); $filename = preg_replace('/\s/', '_', $filename); if($filesize < 1){ $errorList[] = "File size is empty."; } if($filesize > $maxlimit){ $errorList[] = "File size is too big."; } $file_ext = preg_split("/\./",$filename); $allowed_ext = preg_split("/\,/",$allowed_ext); foreach($allowed_ext as $ext){ if($ext==end($file_ext)){ $match = "1"; // File is allowed $NUM = time(); $front_name = substr($file_ext[0], 0, 15); //$newfilename = $front_name."_".$NUM.".".end($file_ext); $newfilename = $desiredname.".".end($file_ext); $filetype = end($file_ext); $save = $folder.$newfilename; if(!file_exists($save)){ list($width_orig, $height_orig) = getimagesize($_FILES[$fileName]['tmp_name']); if($maxH == null){ if($width_orig < $maxW){ $fwidth = $width_orig; }else{ $fwidth = $maxW; } $ratio_orig = $width_orig/$height_orig; $fheight = $fwidth/$ratio_orig; $blank_height = $fheight; $top_offset = 0; }else{ if($width_orig <= $maxW && $height_orig <= $maxH){ $fheight = $height_orig; $fwidth = $width_orig; }else{ if($width_orig > $maxW){ $ratio = ($width_orig / $maxW); $fwidth = $maxW; $fheight = ($height_orig / $ratio); if($fheight > $maxH){ $ratio = ($fheight / $maxH); $fheight = $maxH; $fwidth = ($fwidth / $ratio); } } if($height_orig > $maxH){ $ratio = ($height_orig / $maxH); $fheight = $maxH; $fwidth = ($width_orig / $ratio); if($fwidth > $maxW){ $ratio = ($fwidth / $maxW); $fwidth = $maxW; $fheight = ($fheight / $ratio); } } } if($fheight == 0 || $fwidth == 0 || $height_orig == 0 || $width_orig == 0){ die("FATAL ERROR REPORT ERROR CODE [add-pic-line-67-orig] to <a href='http://www.atwebresults.com'>AT WEB RESULTS</a>"); } if($fheight < 45){ $blank_height = 45; $top_offset = round(($blank_height - $fheight)/2); }else{ $blank_height = $fheight; } } $image_p = imagecreatetruecolor($fwidth, $blank_height); $white = imagecolorallocate($image_p, $colorR, $colorG, $colorB); imagefill($image_p, 0, 0, $white); switch($filetype){ case "gif": $image = @imagecreatefromgif($_FILES[$fileName]['tmp_name']); break; case "jpg": $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']); break; case "jpeg": $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']); break; case "png": $image = @imagecreatefrompng($_FILES[$fileName]['tmp_name']); break; } @imagecopyresampled($image_p, $image, 0, $top_offset, 0, 0, $fwidth, $fheight, $width_orig, $height_orig); switch($filetype){ case "gif": if(!@imagegif($image_p, $save)){ $errorList[]= "PERMISSION DENIED [GIF]"; } break; case "jpg": if(!@imagejpeg($image_p, $save, 100)){ $errorList[]= "PERMISSION DENIED [JPG]"; } break; case "jpeg": if(!@imagejpeg($image_p, $save, 100)){ $errorList[]= "PERMISSION DENIED [JPEG]"; } break; case "png": if(!@imagepng($image_p, $save, 0)){ $errorList[]= "PERMISSION DENIED [PNG]"; } break; } @imagedestroy($filename); }else{ $errorList[]= "CANNOT MAKE IMAGE IT ALREADY EXISTS"; } } } }else{ $errorList[]= "NO FILE SELECTED"; } if(!$match){ $errorList[]= "File type isn't allowed: $filename"; } if(sizeof($errorList) == 0){ return $fullPath.$newfilename; }else{ $eMessage = array(); for ($x=0; $x<sizeof($errorList); $x++){ $eMessage[] = $errorList[$x]; } return $eMessage; } } $filename = strip_tags($_REQUEST['filename']); $maxSize = strip_tags($_REQUEST['maxSize']); $maxW = strip_tags($_REQUEST['maxW']); $fullPath = strip_tags($_REQUEST['fullPath']); $relPath = strip_tags($_REQUEST['relPath']); $colorR = strip_tags($_REQUEST['colorR']); $colorG = strip_tags($_REQUEST['colorG']); $colorB = strip_tags($_REQUEST['colorB']); $maxH = strip_tags($_REQUEST['maxH']); $desiredname = strip_tags($_REQUEST['desiredname']); $filesize_image = $_FILES[$filename]['size']; if($filesize_image > 0){ $upload_image = uploadImage($filename, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH, $desiredname); if(is_array($upload_image)){ foreach($upload_image as $key => $value) { if($value == "-ERROR-") { unset($upload_image[$key]); } } $document = array_values($upload_image); for ($x=0; $x<sizeof($document); $x++){ $errorList[] = $document[$x]; } $imgUploaded = false; }else{ $imgUploaded = true; } }else{ $imgUploaded = false; $errorList[] = "File Size Empty"; } ?> <?php if($imgUploaded){ echo '<img src="images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!<br /><img src="'.$upload_image.'" border="0" />'; }else{ echo '<img src="images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: '; foreach($errorList as $value){ echo $value.', '; } } ?> PHP: I didn't check upload function to work , I just modified it to use file name from submitted form.
Ashine, you are a star! it works perfectly If you are interested, Im looking for an experienced PHP coder for an upcoming project. If you are interested, then give me a shout. Thanks again.