Following is the details of my problem
- I have a php file named ajaxupload.php:-
<?php
function uploadImage($fileName, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH = null){
$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.";
}
if(count($errorList)<1){
$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);
$filetype = end($file_ext);
echo "the value to be passed to the html page ".$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']);
$filesize_image = $_FILES[$filename]['size'];
if($filesize_image > 0){
$upload_image = uploadImage($filename, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH);
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="'.$upload_image.'" border="0" width="90px" height="40px"/>';
}else{
echo '<img src="/php_ajax_image_upload/image/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: ';
foreach($errorList as $value){
echo $value.', ';
}
}
?>
- Second the html page called index.php, it contains a form having an upload file field:
<html>
<head></head>
<body>
<form action="index.php" method="post" name="sleeker" id="sleeker" enctype="multipart/form-data">
<?php include("db.php"); ?>
<table width="281" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="83" align="right" class="inputlabel">Opening line: </td>
<td width="182"><input name="op_line4" title="Character Limit: 26, BOLD" size="24" maxlength="26" id="txtbox19" type="text" class="box" onKeyUp="javascript:showtext(this.value, 'header1');" onkeydown="CheckFieldLength(txtbox19, 'charcount19', 'remaining19', 26);" onMouseOut="CheckFieldLength(txtbox19, 'charcount19', 'remaining19', 26);" /></td>
</tr>
<tr>
<td width="99" nowrap="nowrap"> </td>
<td width="182" class="txt_entered" ><small><span id="charcount19">0</span> charac entered | <span id="remaining19">26</span> charac remaining.</small></td>
</tr>
<tr>
<td align="right" class="inputlabel">Logo: </td>
<td><!-- THIS CODE IS FOR IMAGE UPLOAD START-->
<input type="hidden" name="maxSize" value="9999999999" />
<input type="hidden" name="maxW" value="200" />
<input type="hidden" name="fullPath" value="http://devserver/projects/indiacom/uploads/" />
<input type="hidden" name="relPath" value="../uploads/" />
<input type="hidden" name="colorR" value="255" />
<input type="hidden" name="colorG" value="255" />
<input type="hidden" name="colorB" value="255" />
<input type="hidden" name="maxH" value="300" />
<input type="hidden" name="filename" value="filename" />
<input type="file" title="Upload Company Logo" id="im" name="filename" size="14" onChange="ajaxUpload(this.form,'scripts/ajaxupload.php?filename=name&maxSize=9999999999&maxW=200&fullPath=http://devserver/projects/indiacom/uploads/&relPath=../uploads/&colorR=255&colorG=255&colorB=255&maxH=300','upload_area','File Uploading Please Wait...<br /><img src=\'images/loader_light_blue.gif\' width=\'128\' height=\'15\' border=\'0\' />','<img src=\'images/error.gif\' width=\'16\' height=\'16\' border=\'0\' /> Error in Upload, check settings and path info in source code.'); return false;" />
<!-- THIS CODE IS FOR IMAGE UPLOAD END--></td>
</tr>
<td width="99" nowrap="nowrap"> </td>
<td width="182" class="txt_entered" ><small>Upload your Logo from here.</small></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="SUBMIT" name="submit" /></td>
</tr>
</table>
</form>
</body>
</html>
- Third file called db.php, in that I am running the database insert query:
<?php
if (isset($POST['submit']))
{
echo $opening_line = $POST['op_line4'];
echo $image_path = $save; // here I want to have the path of the uploaded image
echo $address_line = $_POST['add_line4'];
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$sql="INSERT INTO data (opening_line, image_path)
VALUES ('".$opening_line."','".$image_path."')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
}
?>
Now the brief detail : I want to have the "$save" value from the file ajaxupload.php to the db.php, when user uploads the image from index.php, the path of the image which is stored in the upload folder in the server should come in the db.php, so that I can insert it into the database.
Awaiting for the replies desperately.
Thanks.