Exemple #1
0
/**
 * Upload a file into the repository.
 *
 * @uses $CFG
 * @uses $USER
 * @param string $upload   The array index of the uploaded file.
 * @param string $path     The full path to the file on the local filesystem.
 * @param string $uuid     The UUID of the folder where the file is being uploaded to.
 * @param bool   $useadmin Set to false to make sure that the administrative user configured in
 *                         the plug-in is not used for this operation (default: true).
 * @param string $filename The name of the file to be uploaded - used when a duplicate file is to be renamed
 * @param object $filemeta The file meta data of the file to be uploaded when overwriting
 * @return object Node values for the uploaded file.
 */
function elis_files_upload_file($upload = '', $path = '', $uuid = '', $useadmin = true, $filename = '', $olduuid = false, $filemeta = null) {
    global $CFG, $USER;

    require_once($CFG->libdir.'/filelib.php');

    // assign file info from filemeta
    if ($filemeta) {
        $filename = empty($filename) ? $filemeta->name : $filename;
        $filepath = $filemeta->filepath.$filemeta->name;
        $filemime = $filemeta->type;
        $filesize = $filemeta->size;

    } else if (!empty($upload)) {
        if (!isset($_FILES[$upload]) || !empty($_FILES[$upload]->error)) {
            return false;
        }

        $filename = (empty($filename)) ? $_FILES[$upload]['name']: $filename;
        $filepath = $_FILES[$upload]['tmp_name'];
        $filemime = $_FILES[$upload]['type'];
        $filesize = $_FILES[$upload]['size'];

    } else if (!empty($path)) {
        if (!is_file($path)) {
            return false;
        }

        $filename = (empty($filename)) ? basename($path): $filename;
        $filepath = $path;
        $filemime = mimeinfo('type', $filename);
        $filesize = filesize($path);
    } else {
        return false;
    }

    if (!$repo = repository_factory::factory('elisfiles')) {
        return false;
    }

    if (!(ELIS_files::$version = elis_files_get_repository_version())) {
        return false;
    }
//    error_log("elis_files_upload_file('$upload', '$path', '$uuid', $useadmin): version = ". ELIS_files::$version);
    if (empty($uuid)) {
        $uuid = $repo->get_root()->uuid;
    }

    $xfermethod = get_config('elisfiles', 'file_transfer_method');
    switch ($xfermethod) {
        case ELIS_FILES_XFER_WS:
            return elis_files_upload_ws($filename, $filepath, $filemime, $filesize, $uuid, $useadmin, $repo);
            break;

        case ELIS_FILES_XFER_FTP:
            return elis_files_upload_ftp($filename, $filepath, $filemime, $filesize, $uuid, $useadmin);
            break;

        default: // TBD
            // error_log("elis_files_upload_file(): Invalid ELIS files setting for 'file_transfer_method' = {$xfermethod}");
            return false;
    }
}
Exemple #2
0
    function get_defaults() {
        // Initialize the alfresco version
        if (!(self::$version = elis_files_get_repository_version())) {
            return false;
        }

        // Set the file and folder type
        if (!isset(self::$type_document)) {
            if (self::is_version('3.2')) {
                self::$type_folder   = 'folder';
                self::$type_document = 'document';
            } else if (self::is_version('3.4')) {
                self::$type_folder   = 'cmis:folder';
                self::$type_document = 'cmis:document';
            }
        }

        return true;
    }