コード例 #1
0
ファイル: images.php プロジェクト: realityking/rsgallery2
function save_batchupload()
{
    global $rsgConfig, $mainframe;
    $database = JFactory::getDBO();
    //Try to bypass max_execution_time as set in php.ini
    set_time_limit(0);
    $FTP_path = $rsgConfig->get('ftp_path');
    $teller = rsgInstance::getInt('teller', null);
    $delete = rsgInstance::getVar('delete', null);
    $filename = rsgInstance::getVar('filename', null);
    $ptitle = rsgInstance::getVar('ptitle', null);
    $descr = rsgInstance::getVar('descr', array(0));
    $extractdir = rsgInstance::getVar('extractdir', null);
    //Check if all categories are chosen
    if (isset($_REQUEST['category'])) {
        $category = rsgInstance::getVar('category', array(0));
    } else {
        $category = array(0);
    }
    if (in_array('0', $category) || in_array('-1', $category)) {
        $mainframe->redirect("index2.php?option=com_rsgallery2&task=batchupload", JText::_('_RSGALLERY_ALERT_NOCATSELECTED'));
    }
    for ($i = 0; $i < $teller; $i++) {
        //If image is marked for deletion, delete and continue with next iteration
        if (isset($delete[$i]) and $delete[$i] == 'true') {
            //Delete file from server
            unlink(JPATH_ROOT . "/media/" . $extractdir . '/' . $filename[$i]);
            continue;
        } else {
            //Setting variables for importImage()
            $imgTmpName = JPATH_ROOT . "/media/" . $extractdir . '/' . $filename[$i];
            $imgName = $filename[$i];
            $imgCat = $category[$i];
            $imgTitle = $ptitle[$i];
            $imgDesc = $descr[$i];
            //Import image
            $e = imgUtils::importImage($imgTmpName, $imgName, $imgCat, $imgTitle, $imgDesc);
            //Check for errors
            if ($e !== true) {
                $errors[] = $e;
            }
        }
    }
    //Clean up mediadir
    fileHandler::cleanMediaDir($extractdir);
    // Error handling
    if (isset($errors)) {
        if (count($errors) == 0) {
            echo JText::_('Item uploaded succesfully!');
        } else {
            foreach ($errors as $err) {
                echo $err->toString();
            }
        }
    } else {
        //Everything went smoothly, back to Control Panel
        global $mainframe;
        $mainframe->redirect("index2.php?option=com_rsgallery2", JText::_('Item uploaded succesfully!'));
    }
}
コード例 #2
0
function saveUploadedItem()
{
    global $rsgConfig, $rsgAccess, $mainframe;
    $database = JFactory::getDBO();
    //Set redirect URL
    $redirect = JRoute::_("index.php?option=com_rsgallery2&rsgOption=myGalleries", false);
    //Get category ID to check rights
    $i_cat = rsgInstance::getVar('i_cat', '');
    //Get maximum number of images to upload
    $max_images = $rsgConfig->get('uu_maxImages');
    //Check if user can upload in this gallery
    if (!$rsgAccess->checkGallery('up_mod_img', $i_cat)) {
        die('Unauthorized upload attempt!');
    }
    //Check if number of images is not exceeded
    $count = 0;
    if ($count > $max_images) {
        //Notify user and redirect
    } else {
        //Go ahead and upload
        $upload = new fileHandler();
        //Get parameters from form
        $i_file = rsgInstance::getVar('i_file', null, 'files', 'array');
        $i_cat = rsgInstance::getInt('i_cat', '');
        $title = rsgInstance::getVar('title', '');
        $descr = rsgInstance::getVar('descr', '', 'post', 'string', JREQUEST_ALLOWRAW);
        $uploader = rsgInstance::getVar('uploader', '');
        //Get filetype
        $file_ext = $upload->checkFileType($i_file['name']);
        //Check whether directories are there and writable
        $check = $upload->preHandlerCheck();
        if ($check !== true) {
            $mainframe->redirect($redirect, $check);
        }
        switch ($file_ext) {
            case 'zip':
                if ($upload->checkSize($i_file) == 1) {
                    $ziplist = $upload->handleZIP($i_file);
                    //Set extract dir for uninstall purposes
                    $extractdir = JPATH_ROOT . "/media/" . $upload->extractDir . '/';
                    //Import images into right folder
                    for ($i = 0; $i < sizeof($ziplist); $i++) {
                        $import = imgUtils::importImage($extractdir . $ziplist[$i], $ziplist[$i], $i_cat);
                    }
                    //Clean mediadir
                    fileHandler::cleanMediaDir($upload->extractDir);
                    //Redirect
                    $mainframe->redirect($redirect, JText::_('Item uploaded succesfully!'));
                } else {
                    //Error message
                    $mainframe->redirect($redirect, JText::_('ZIP-file is too big!'));
                }
                break;
            case 'image':
                //Check if image is too big
                if ($i_file['error'] == 1) {
                    $mainframe->redirect($redirect, JText::_('Image size is too big for upload'));
                }
                $file_name = $i_file['name'];
                if (move_uploaded_file($i_file['tmp_name'], JPATH_ROOT . "/media/" . $file_name)) {
                    //Import into database and copy to the right places
                    $imported = imgUtils::importImage(JPATH_ROOT . "/media/" . $file_name, $file_name, $i_cat, $title, $descr);
                    if ($imported == 1) {
                        if (file_exists(JPATH_ROOT . "/media/" . $file_name)) {
                            unlink(JPATH_ROOT . "/media/" . $file_name);
                        }
                    } else {
                        $mainframe->redirect($redirect, 'Importing image failed! Notify RSGallery2. This should never happen!');
                    }
                    $mainframe->redirect($redirect, JText::_('Item uploaded succesfully!'));
                } else {
                    $mainframe->redirect($redirect, JText::_('UPLOAD FAILED BACK TO UPLOADSCREEN'));
                }
                break;
            case 'error':
                $mainframe->redirect($redirect, JText::_('WRONG IMAGE FORMAT. WE WILL REDIRECT YOU TO THE UPLOAD SCREEN'));
                break;
        }
    }
}