Jump to content

image resize before saving to mysql


sandrine

Recommended Posts

hi

ok below is a php script which write some basic info to mysql which it gets from a html form users fill in which is also below.

i have tried doing it myself with little effect basically i need to resize the image which the user uploads to 2 different sizes before saving them to the image folder and the mysql(to mysql just the name link not the actual image), 1 size about 400 x 200 and another size a thumbnail, also want to be able to resize and process any type of image extension i.e jpeg jpang gif etc........the form and php work fine at the moment when it comes to uploading and saving a image to my image folder and mysql. anyway hope some one can help oh yeah iam not being lazy i just cant fig this out iav tried high and low but not even the the great internet can help me on this one. The other thing i cant figure out is how to get a user to enter the password they entered when uploading/inserting a record, i know how to get the user to enter the password and i can get the password to be inserted into the mysql along with other user info but dont know how to get the user to enter the password when the user wants to edit/delete their record from the mysql.

 

php script;

 

<?php

 

$password=$_POST['password'];

$name=$_POST['name'];

$date=$_POST['date'];

 

 

 

define('DESTINATION_FOLDER','images/');

define('MAX_FILE_SIZE', 0);

define('SUCCESS_URL','');

 

 

// Example: $exts = array('jpeg','mov','doc');

$exts = array();

define('RENAME_FILE', true);

// sample strings: aaa, my, etc.

define('APPEND_STRING', '');

define('DO_LOG', true);

 

// MySql data (in case you want to save uploads log)

define('DB_HOST',''); // host, usually localhost

define('DB_DATABASE',''); // database name

define('DB_USERNAME',''); // username

define('DB_PASSWORD',''); // password

 

 

@set_time_limit(172800);

 

 

// ini_set("session.gc_maxlifetime","10800");

 

function showUploadForm($message='') {

  $max_file_size_tag = '';

  if (MAX_FILE_SIZE > 0) {

    // convert to bytes

    $max_file_size_tag = "<input name='MAX_FILE_SIZE' value='".(MAX_FILE_SIZE*1024)."' type='hidden' >\n";

  }

 

  // Load form template

  include ('file-upload.html');

}

 

// errors list

$errors = array();

 

$message = '';

 

// we should not exceed php.ini max file size

$ini_maxsize = ini_get('upload_max_filesize');

if (!is_numeric($ini_maxsize)) {

  if (strpos($ini_maxsize, 'M') !== false)

    $ini_maxsize = intval($ini_maxsize)*1024*1024;

  elseif (strpos($ini_maxsize, 'K') !== false)

    $ini_maxsize = intval($ini_maxsize)*1024;

  elseif (strpos($ini_maxsize, 'G') !== false)

    $ini_maxsize = intval($ini_maxsize)*1024*1024*1024;

}

if ($ini_maxsize < MAX_FILE_SIZE*1024) {

  $errors[] = "Alert! Maximum upload file size in php.ini (upload_max_filesize) is less than script's MAX_FILE_SIZE";

}

 

// show upload form

if (!isset($_POST['submit'])) {

  showUploadForm(join('',$errors));

}

 

// process file upload

else {

 

  while(true) {

 

    // make sure destination folder exists

    if (!@file_exists(DESTINATION_FOLDER)) {

      $errors[] = "Destination folder does not exist or no permissions to see it.";

      break;

    }

 

    // check for upload errors

    $error_code = $_FILES['filename']['error'];

    if ($error_code != UPLOAD_ERR_OK) {

      switch($error_code) {

        case UPLOAD_ERR_INI_SIZE:

          // uploaded file exceeds the upload_max_filesize directive in php.ini

          $errors[] = "File is too big (1).";

          break;

        case UPLOAD_ERR_FORM_SIZE:

          // uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form

          $errors[] = "File is too big (2).";

          break;

        case UPLOAD_ERR_PARTIAL:

          // uploaded file was only partially uploaded.

          $errors[] = "Could not upload file (1).";

          break;

        case UPLOAD_ERR_NO_FILE:

          // No file was uploaded

          $errors[] = "Could not upload file (2).";

          break;

        case UPLOAD_ERR_NO_TMP_DIR:

          // Missing a temporary folder

          $errors[] = "Could not upload file (3).";

          break;

        case UPLOAD_ERR_CANT_WRITE:

          // Failed to write file to disk

          $errors[] = "Could not upload file (4).";

          break;

        case 8:

          // File upload stopped by extension

          $errors[] = "Could not upload file (5).";

          break;

      } // switch

 

      // leave the while loop

      break;

    }

 

    // get file name (not including path)

    $filename = @basename($_FILES['filename']['name']);

 

    // filename of temp uploaded file

    $tmp_filename = $_FILES['filename']['tmp_name'];

 

    $file_ext = @strtolower(@strrchr($filename,"."));

    if (@strpos($file_ext,'.') === false) { // no dot? strange

      $errors[] = "Suspicious file name or could not determine file extension.";

      break;

    }

    $file_ext = @substr($file_ext, 1); // remove dot

 

    // check file type if needed

    if (count($exts)) {  /// some day maybe check also $_FILES['user_file']['type']

      if (!@in_array($file_ext, $exts)) {

        $errors[] = "Files of this type are not allowed for upload.";

        break;

      }

    }

 

    // destination filename, rename if set to

    $dest_filename = $filename;

    if (RENAME_FILE) {

      $dest_filename = md5(uniqid(rand(), true)) . '.' . $file_ext;

    }

    // append predefined string for safety

    $dest_filename = $dest_filename . APPEND_STRING;

 

    // get size

    $filesize = intval($_FILES["filename"]["size"]); // filesize($tmp_filename);

 

    // make sure file size is ok

    if (MAX_FILE_SIZE > 0 && MAX_FILE_SIZE*1024 < $filesize) {

      $errors[] = "File is too big (3).";

      break;

    }

 

    if (!@move_uploaded_file($tmp_filename , DESTINATION_FOLDER . $dest_filename)) {

      $errors[] = "Could not upload file (6).";

      break;

    }

 

    if (DO_LOG) {

      // Establish DB connection

      $link = @mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);

      if (!$link) {

        $errors[] = "Could not connect to mysql.";

        break;

      }

      $res = @mysql_select_db(DB_DATABASE, $link);

      if (!$res) {

        $errors[] = "Could not select database.";

        break;

      }

      $m_ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);

      $m_size = $filesize;

      $m_fname = mysql_real_escape_string($dest_filename);

      $sql = "insert into _uploads_log (password,date,name,log_filename,log_size,log_ip) values ('$password','$date','$name','$m_fname','$m_size','$m_ip')";

      $res = @mysql_query($sql);

      if (!$res) {

        $errors[] = "Could not run query.";

        break;

      }

      @mysql_free_result($res);

      @mysql_close($link);

    } // if (DO_LOG)

 

 

    // redirect to upload success url

    header('Location: ' . SUCCESS_URL);

    die();

 

    break;

 

  } // while(true)

 

  // Errors. Show upload form.

  $message = join('',$errors);

  showUploadForm($message);

 

}

 

?>

 

 

 

html upload form:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

  <meta content="text/html; charset=ISO-8859-1"

http-equiv="content-type">

  <title></title>

</head>

<body>

<table

style="width: 100px; text-align: left; margin-left: auto; margin-right: auto;"

border="4" cellpadding="2" cellspacing="2">

  <tbody>

    <tr>

      <td style="text-align: center;"><?php

 

// Variable for hours

$hourdiff = "9"; // hours difference between server time and local time

 

// Nothing needs to be changed below here unless you want to change

// the format of the date (see above for URL of options) or your local

// time is behind the server time

$timeadjust = ($hourdiff * 3600);

$melbdate = date("l, d F Y G:i a",time() + $timeadjust);

print ("$melbdate");

 

?></td>

    </tr>

    <tr>

      <td style="text-align: center;">

      <form method="post" enctype="multipart/form-data"

action="file-upload.php">

        <div><?php echo $message; ?></div>

<?php echo $max_file_size_tag; ?>Name: <input name="name"

type="text"><br>

Please select file to upload: <input size="20"

name="filename" type="file">

<input name="date"

value="<?php echo $melbdate; ?>" type="hidden">

<P>Password:<INPUT TYPE="password" NAME="password" VALUE="" SIZE="25">

<input value="Upload"

name="submit" type="submit">

      </form>

      </td>

    </tr>

  </tbody>

</table>

<br>

</body>

</html>

 

 

Link to comment
Share on other sites

1.) This really doesn't have an awful lot to do with maths. Please try and post in the correct section.

 

2.) Any chance of you using some


tags around your code please? It makes it very difficult to read your code otherwise.

 

3.) You've posted a lot of code. How about narrowing it down to the relevant part? Is there a section where you're having real problems? What exactly have you tried after all the effort you've said you put in?

Link to comment
Share on other sites

1.) This really doesn't have an awful lot to do with maths. Please try and post in the correct section.

 

Actually, sandrine, you are very often misplacing your posts in places where it is blatantly obvious it does not belong. Do make an effort of reading the board descriptions. Your general PHP questions do not belong in neither our suggestions/feedback board nor in the math board.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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