I wanted to how do we upload an image path(url) into the MySql database and call it through PHP. Do we use the BLOB function, if yes, then how? I don't want to upload the image itself as it will burden the database.

Please Advise.*

* Any Tutorials, videos, article, books......pls include the links

Thanks.

Recommended Answers

All 11 Replies

Hi...something like this may help get you pointed in the right direction

<?
php require_once('/Connections/connect.php'); 

$colname_rsProject = "-1";
if (isset($_GET['ID'])) {
  $colname_rsProjects = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database, $conn);
$query_rsProject = sprintf("SELECT * FROM dbtable WHERE ID = %s", $colname_rsProject);
$rsProject = mysql_query($query_rsProject, $conn) or die(mysql_error());
$row_rsProject = mysql_fetch_assoc($rsProject);
$totalRows_rsProject = mysql_num_rows($rsProject);


define ('MAX_FILE_SIZE', 2048000);  
$AddData="No";
$MM_flag="MM_update";
if((isset($_POST["submit"])) && ($_POST["MM_update"] == "formname")) {
	$AddData="Yes";
	$startwarn="No";
 /// image/file upload code begin	
	
		if (array_key_exists('submit', $_POST)) {
  			// define constant for upload folder
  			define('UPLOAD_DIR', 'you upload directory info here');
  			// replace any spaces in original filename with underscores
  			// and assign to a simpler variable
  			$file = str_replace(' ', '_', $_FILES['image']['name']);
  			// convert the maximum size to KB
  			$max = number_format(MAX_FILE_SIZE/1024, 1).'KB';
  			// create an array of permitted MIME types
  			$permitted = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
  			// begin by assuming the file is unacceptable
  			$size_OK = false;
  			$type_OK = false;
  
  			// check that file is within the permitted size
  			if ($_FILES['image']['size'] > 0 && $_FILES['image']['size'] <= MAX_FILE_SIZE) {
    			$size_OK = true;
			}

  			// check that file is of an permitted MIME type
  			foreach ($permitted as $type) {
    		if ($type == $_FILES['image']['type']) {
     		 $type_OK = true;
	  		break;
	 		 }
			}
  
  
  		if ($size_OK && $type_OK) {
    		switch($_FILES['image']['error']) {
	  		case 0:
        	// move the file to the upload folder and rename it
			$success_OK = move_uploaded_file($_FILES['image']['tmp_name'], UPLOAD_DIR.$file);
			if ($success_OK) {
          		$result1 = "$file  has been uploaded successfully";
	     	 }
			else {
			$AddData = "No";
		  	$result = "There was an error uploading $file. Please try again.";
		  	}
	    	break;
	  		case 3:
			$AddData = "No";
			$result = "There was an error uploading $file. Please try again.";
	  		default:
			$AddData = "No";
        	$result = "System error uploading $file. Please contact the webmaster.";
	  		}
   		 }
  		elseif ($_FILES['image']['error'] == 4) {
			
    		$result1 = 'No file selected';
			}
  		else {
			$AddData = "No";
    		$result = "$file cannot be uploaded. Maximum size: $max. Acceptable file types:  gif, jpg, png.";
			}
 		 }
		 
	if (isset($result)) {
			$AddData = "No";
		if ($startwarn=="No") { ?>
		<div class="startwarning">Please complete the missing item(s) indicated. </div>
			<?php $startwarn="Yes"; }  ?>
			<div class="warning"><li><?php echo $result; ?></li></div>

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


$ID = $_POST['ID'];
mysql_select_db($database, $conn);
$query_rsUploads = ("SELECT * FROM db WHERE ID = '$ID' and FilePath = '$file'");
$rsUpload = mysql_query($query_rsUpload, $conn) or die(mysql_error());
$row_rsUpload = mysql_fetch_assoc($rsUpload);
$totalRows_rsUpload = mysql_num_rows($rsUpload);

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "formname") && $AddData!="No" && $totalRows_rsUpload == 0 && $file !="") {
  $insert = sprintf("INSERT INTO dbtable (ID, FilePath) VALUES (%s, '$file')",
                       
                       GetSQLValueString($_POST['ID'], "int"));

mysql_select_db($database, $conn);
$query_rsUploadFile = sprintf("SELECT * FROM dbtable WHERE ID = %s", $colname_rsProject);
$rsUploadFile = mysql_query($query_rsUploadFile, $conn) or die(mysql_error());
$row_rsUploadFile = mysql_fetch_assoc($rsUploadFile);
$totalRows_rsUploadFile = mysql_num_rows($rsUploadFile);		 
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
  .warning {
	background-color: #ffffee;
	color: #660000;
	width: 650px;
	padding: 5px;
	border-right-width: thin;
	border-left-width: thin;
	border-right-style: solid;
	border-left-style: solid;
	border-right-color: #FF0000;
	border-left-color: #FF0000;
	text-indent: 20px;
  }
   .warningend {
	background-color: #ffffee;
	color: #660000;
	width: 650px;
	padding: 5px;
	border-right-width: thin;
	border-left-width: thin;
	border-right-style: solid;
	border-left-style: solid;
	border-right-color: #FF0000;
	border-left-color: #FF0000;
	border-bottom-width: thin;
	border-bottom-style: solid;
	border-bottom-color: #FF0000;
  }
    .startwarning {
	background-color: #ffffee;
	color: #660000;
	width: 650px;
	padding: 5px;
	border-right-width: thin;
	border-left-width: thin;
	border-right-style: solid;
	border-left-style: solid;
	border-right-color: #FF0000;
	border-left-color: #FF0000;
	border-top-width: thin;
	border-top-style: solid;
	border-top-color: #FF0000;
  }
  .notify {
    border: 1px solid #336699;
    background-color: #ffffee;
    color: #336699;
    width: 650px;
    padding: 5px;
  }
-->
</style>

</head>

<body>
<form method="post" name="formname" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data"/>
<?php
if (array_key_exists('submit', $_POST)) {
}
if($AddData=="no") {
?>
<input type="hidden" name="ID" value="<?php echo $row_rsProject['ID']; ?>"  />
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_FILE_SIZE; ?>" />
<input type="hidden" name="ID" value="<?php echo $row_rsProject['ID']; ?>">
<input type="file" name="image" id="image" size="70"  />
<input type="submit" name="submit" value="Submit" />
<input type="hidden" name="MM_update" value="formname">
</form>
<?php
 }
?>		
</body>
</html>

If you know a little bit PHP and MySQL there is no problem to accomplish your task. in your database should store only the file name (let say column name is image_name). you must define a constant with your upload folder something like: define("UPLOAD_DIR", "images_uploaded"); . when you will display the images you will refer as follows:

// do whatever (db) processing is necessarily

while ($obj = mysql_fetch_object($rez))
{
echo "<img src='./".UPLOAD_DIR."/".$obj->image_name."' alt='some alt desc'>";
}


hope it's useful ...

I wanted to how do we upload an image path(url) into the MySql database and call it through PHP.

When you upload an image, you upload it to a path. Store the path in a variable and at the time you upload, insert a record to the table containing the path.

Do we use the BLOB function, if yes, then how?

Nope. If you are uploading only the path, a fieldname of datatype varchar will do. eg. varchar(100).

I don't want to upload the image itself as it will burden the database.

Exactly ! Its not a good idea to upload images to the database.

When you upload an image, you upload it to a path. Store the path in a variable and at the time you upload, insert a record to the table containing the path.

Can you show me an example of doing this process. thanks.

I've visited the given url. But one question....

That's the path. Save that in the table.

How do I save it in the table. How does he path look like. Pls advise, still a bit blur on this part.

I don't know if you read (or understand) my previous post....
in the database you should keep only the file name. let say your file is image1.jpg and it is stored in {root}/images/uploaded_images/ + image1.jpg. why i think it's a better idea to keep only the filename? think what will happen if you store something like: "images/uploaded_images/image1.jpg" and one day you decide to rename your folder from "uploaded_images" to "uploads" ....

yes, I've read it but just a bit confusing. Anyhow thanks for your guide.

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

Can't we customize this input box, I mean the length of the text area, rename the browse button. Can we?

you cannot use something like class='....' or style='...' to customize the file control .... it can be done but you have to dig a lot ....

Thanks silviuks

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.