function hj_framework_handle_multifile_upload($user_guid)
{
    if (!empty($_FILES)) {
        $access = elgg_get_ignore_access();
        elgg_set_ignore_access(true);
        $file = $_FILES['Filedata'];
        $filehandler = new hjFile();
        $filehandler->owner_guid = (int) $user_guid;
        $filehandler->container_guid = (int) $user_guid;
        $filehandler->access_id = ACCESS_DEFAULT;
        $filehandler->data_pattern = hj_framework_get_data_pattern('object', 'hjfile');
        $filehandler->title = $file['name'];
        $filehandler->description = '';
        $prefix = "hjfile/";
        $filestorename = elgg_strtolower($file['name']);
        $mime = hj_framework_get_mime_type($file['name']);
        $filehandler->setFilename($prefix . $filestorename);
        $filehandler->setMimeType($mime);
        $filehandler->originalfilename = $file['name'];
        $filehandler->simpletype = hj_framework_get_simple_type($mime);
        $filehandler->filesize = round($file['size'] / (1024 * 1024), 2) . "Mb";
        $filehandler->open("write");
        $filehandler->close();
        move_uploaded_file($file['tmp_name'], $filehandler->getFilenameOnFilestore());
        $file_guid = $filehandler->save();
        hj_framework_set_entity_priority($filehandler);
        elgg_trigger_plugin_hook('hj:framework:file:process', 'object', array('entity' => $filehandler));
        if ($file_guid) {
            $meta_value = $filehandler->getGUID();
        } else {
            $meta_value = $filehandler->getFilenameOnFilestore();
        }
        if ($file_guid && $filehandler->simpletype == "image") {
            $thumb_sizes = hj_framework_get_thumb_sizes();
            foreach ($thumb_sizes as $thumb_type => $thumb_size) {
                $thumbnail = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(), $thumb_size['w'], $thumb_size['h'], $thumb_size['square'], 0, 0, 0, 0, true);
                if ($thumbnail) {
                    $thumb = new ElggFile();
                    $thumb->setMimeType($file['type']);
                    $thumb->owner_guid = $user_guid;
                    $thumb->setFilename("{$prefix}{$filehandler->getGUID()}{$thumb_type}.jpg");
                    $thumb->open("write");
                    $thumb->write($thumbnail);
                    $thumb->close();
                    $thumb_meta = "{$thumb_type}thumb";
                    $filehandler->{$thumb_meta} = $thumb->getFilename();
                    unset($thumbnail);
                }
            }
        }
        $response = array('status' => 'OK', 'value' => $meta_value);
    } else {
        $response = array('status' => 'FAIL');
    }
    echo json_encode($response);
    elgg_set_ignore_access($access);
    return;
}
Exemple #2
0
function hj_framework_process_entity_icon_input($hook, $type, $return, $params)
{
    $entity = elgg_extract('entity', $params);
    $name = elgg_extract('name', $params);
    global $_FILES;
    if (isset($_FILES[$name]) && substr_count($_FILES[$name]['type'], 'image/') && !$_FILES[$name]['error']) {
        $file = new hjFile();
        $file->owner_guid = $entity->guid;
        $file->setFilename('hjfile/' . time() . $_FILES[$name]['name']);
        $file->open("write");
        $file->close();
        move_uploaded_file($_FILES[$name]['tmp_name'], $file->getFilenameOnFilestore());
        hj_framework_generate_entity_icons($entity, $file);
        $file->delete();
    }
    return true;
}
Exemple #3
0
/**
 * Generate icons for an entity
 *
 * @param ElggEntity $entity
 * @param ElggFile $filehandler		Valid $filehandler on Elgg filestore to grab the file from | can be null if $entity is instance of ElggFile
 * @param array $coords				Coordinates for cropping
 * @return boolean
 */
function hj_framework_generate_entity_icons($entity, $filehandler = null, $coords = array())
{
    $icon_sizes = hj_framework_get_thumb_sizes($entity->getSubtype());
    if (!$filehandler && $entity instanceof hjFile) {
        $filehandler = $entity;
    }
    if (!$filehandler) {
        return false;
    }
    $prefix = "icons/" . $entity->getGUID();
    foreach ($icon_sizes as $size => $values) {
        if (!empty($coords) && in_array($size, array('topbar', 'tiny', 'small', 'medium', 'large'))) {
            $thumb_resized = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(), $values['w'], $values['h'], $values['square'], $coords['x1'], $coords['y1'], $coords['x2'], $coords['y2'], $values['upscale']);
        } else {
            if (empty($coords)) {
                $thumb_resized = get_resized_image_from_existing_file($filehandler->getFilenameOnFilestore(), $values['w'], $values['h'], $values['square'], 0, 0, 0, 0, $values['upscale']);
            }
        }
        if ($thumb_resized) {
            $thumb = new hjFile();
            $thumb->owner_guid = $entity->owner_guid;
            $thumb->setMimeType('image/jpeg');
            $thumb->setFilename($prefix . "{$size}.jpg");
            $thumb->open("write");
            $thumb->write($thumb_resized);
            $thumb->close();
            $icontime = true;
        }
    }
    if ($icontime) {
        $entity->icontime = time();
        return true;
    }
    return false;
}