Slash into input text and class.upload.php doesn't work

See all posts Reply

Slash into input text and class.upload.php doesn't work new!
by Ogum, 9 years, 8 months ago
I have a simple form to upload products in a database: Name and image. For the name, i use the standard input text field and for the image i'm using the class class.upload.php to resize and rename it.

It would work fine, but if i use a product name with the slash inside, something like: article 6/10 - 10/10 - 20/10 sends me to crash the class for resizing image. Does not meet the dimensions given and I have always renamed it to 10.jpg instead as something like: 03110e1afaf5c168e83a0cf18eed368e.jpg

So, article: 610 - 1010 - 2010 works

article: 6/10 - 10/10 - 20/10 doesn't work

This is the script i use:
function addProduct() {
  include('class.upload.php'); 

  $catId       = $_POST['cboCategory'];
  $name        = $_POST["txtName"];
  $width = 800;

  $immagine = $_FILES['fleImage']['tmp_name'];
  $dimensioni = getimagesize($immagine);
  $larghezza = $dimensioni[0];
  $altezza = $dimensioni[1];

  if ($larghezza>$width) {         
    $db_name = str_replace(" ","_",$name);
    $image1 = md5(rand() * time()) . ".$db_name";  
    $fileName = pathinfo($image1, PATHINFO_FILENAME );

    $handle = new upload($_FILES['fleImage']);
    if ($handle->uploaded) {
      $handle->file_new_name_body   =    $fileName;
      $handle->image_resize     = true;
      $handle->image_x          = 800;
      $handle->image_ratio_y    = true;
      $handle->process('../../images/product/');

     // thumbnail
     $db_name = str_replace(" ","_",$name);
     $image2 = md5(rand() * time()) . ".$db_name";  
     $thumb = pathinfo($image2, PATHINFO_FILENAME );

     $handle->file_new_name_body   =   $thumb;
     $handle->image_resize     = true;
     $handle->image_ratio_crop = true;
     $handle->image_x          = 360;
     $handle->image_y          = 270;

     $handle->process('../../images/product/');   

     if ($handle->processed) {
       // header("Location: index.php"); 
       $handle->clean();
     } else {
       echo 'error : ' . $handle->error;
     }
   }

  $thumbnail = $thumb.'.jpg';
  $main_image = $fileName.'.jpg';

  $sql   = "INSERT INTO tbl_product (cat_id, pd_name, pd_image, pd_thumbnail, pd_date)
        VALUES ('$catId', '$name', '$main_image', '$thumbnail', NOW())";

  $result = dbQuery($sql);

  header("Location: index.php?catId=$catId");    
}
Reply
Re: Slash into input text and class.upload.php doesn't work new!
by colin, 9 years, 8 months ago
Can you copy here the log produced by the class?

And what does it do if you set file_safe_name to false?Reply
Re: Slash into input text and class.upload.php doesn't work new!
by Ogum, 9 years, 8 months ago
hi
thanks for your reply. I found where is the issue.

$image1 = md5(rand() * time()) . ".$db_name";
$image1 contains something like "03110e1afaf5c168e83a0cf18eed368earticle6/10_-10/10-_20/10"
$fileName = pathinfo($image1, PATHINFO_FILENAME );
pathinfo cuts everything but the file name, in this case $filename == "10" Later i concatenate the ending ".jpg"
Reply