Support » Plugin: Events Manager » $_POST['event_image'] not accessible in em_events.php

  • I’m trying to add a photo gallery function to the events page and have added the following to the em_event.php file to create a directory for the event, and upload the event image to the new directory. I also need the ‘event_image’ to add the file to the uploads directory where it is normally created, but also want to upload it to the new directory.

    Here’s the code

    mkdir('/home/a6950159/public_html/images/'.$new_dir, 0755) or die('Error, This Location Already Exists. Please slug.'">Visit the Location Page to add Comments and Images');
    // UPLOAD FILE
    //This function reads the extension of the file. It is used to determine if the file is an image by checking the extension.
    function getExtension($str) {
    $i = strrpos($str,".");
    if (!$i) { return ""; }
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
    }
    //define a maxim size for the uploaded images in Kb
    define ("MAX_SIZE","5000");
    //This variable is used as a flag. The value is initialized with 0 (meaning no error found) and it will be changed to 1 if an errro occures. If the error occures the file will not be uploaded.
    $errors=0;
    //reads the name of the file the user submitted for uploading
    $image=$_FILES['event_image']['name'];
    //if it is not empty
    if ($image)
    {
    //get the original name of the file from the clients machine
    $filename = stripslashes($_FILES['event_image']['name']);
    //get the extension of the file in a lower case format
    $extension = getExtension($filename);
    $extension = strtolower($extension);
    //if it is not a known extension, we will suppose it is an error and will not upload the file, otherwize we will do more tests
    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != "bmp"))
    {
    //print error message
    echo 'Unknown extension!';
    $errors=1;
    }
    else
    {
    //get the size of the image in bytes
    //$_FILES['image']['tmp_name'] is the temporary filename of the file in which the uploaded file was stored on the server
    $size=filesize($_FILES['event_image']['tmp_name']);

    //compare the size with the maxim size we defined and print error if bigger
    if ($size > MAX_SIZE*1024)
    {
    echo 'You have exceeded the size limit!';
    $errors=1;
    }

    //we will give an unique name, for example the time in unix time format
    $image_name=time().'.'.$extension;
    //the new name will be containing the full path where will be stored (images folder)
    $new_dir = $this->name;
    $newname='/home/a6950159/public_html/images/'.$new_dir.'/'.$image_name;
    //we verify if the image has been uploaded, and print error instead
    $copied = copy($_FILES['event_image']['tmp_name'], $newname);
    if (!$copied)
    {
    echo 'Copy unsuccessfull!';
    $errors=1;
    }}}

    //END IMAGE UPLOAD TO NEW DIRECTORY

    …. For whatever reason, the image will not upload. I know that the event image is passed in a post and should be stored as $_POST[‘event_image’], but for whatever reason cannot get the image to upload to the new directory that is created for the event.

    I know that most of the people on this forum are better at this stuff than I am, so I’m hoping someone will be able to solve this one. Thanks in advance for any help that anyone can provide.

Viewing 7 replies - 1 through 7 (of 7 total)
  • I forgot to mention that I have tried creating the new directory with 0777 permissions as well.

    Plugin Author Marcus

    (@netweblogic)

    could it be your form element doesnt have the right encoding for uploads?

    bsha100 Can you please tell me in which of the two files are you trying to add this script.
    …/events-manager/classes/em_event.php
    or
    …/events-manager/admin/em_event.php

    And in which line if that is crucial.

    I’m trying to add a photo gallery too so maybe i can test it for you.

    Thanks in advance

    tskaleo,

    I was trying to edit the file events-manager/classes/em_event.php.

    I found my problem, stupid oversight. I was trying to define a variable within a class. I just added a function before the class and it works fine now. If you are using $_FILES, you can either create a function that constructs the variable from $this->(whater you want) to $_FILES[‘whatever_you_want’] or you can just call the POST that $_FILES draws from outside of the class. I did the second, and it seems to work fine.

    Thanks for the help guys. tskaleoo, if I can help at all with your image gallery please post and I will do my best.

    Plugin Author Marcus

    (@netweblogic)

    btw, did you know you can use nextgen gallery and just include shortcodes?

    rather than making a gallery, I’d consider integrating with that if shortcodes isn’t enough (that’s what i’d do).

    Plugin Author Marcus

    (@netweblogic)

    would NEVER advise modiying the class files, if there’s a filter that’s mmissing or that could be added to make flexibility better, request it on this forum

    nextgen sounds good to me. My problem is that I have a separate directory created for each event page to allow users to upload their own images. Everything functions, however I can’t seem to figure out how to dynamically call each page’s directory to access the images. I’ve been at it for days, and no luck.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘$_POST['event_image'] not accessible in em_events.php’ is closed to new replies.