+ Antworten
Ergebnis 1 bis 5 von 5

Thema: HTMLArea hat Probleme mit Pfaden und Upload

  1. #1
    Neu an Board
    Registriert seit
    08.11.2004
    Beiträge
    14
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard HTMLArea hat Probleme mit Pfaden und Upload

    Hallo.
    Ich habe ein Problem mit Mambo den Editor HTMLArea.
    Das Hauptproblem war dass der Pfad in den Bilderordner nicht stimme und somit der Bilder-Ordner /images/ im Document-Root gesucht wurde. Sobald Mambo also in einem Unterordner, z. b. CMS oder MAMBO installiert wurde, stimmte der Pfad nicht mehr.
    Dies wurde behoben indem ich die Datei config.inc.php bearbeitet habe.
    Hier der Auszug der config.inc.php

    //************************** BEGIN CONFIGURATION *****************************//

    //example, this is the actual file system path
    //of the web server document root. e.g.
    // Filesystem == /home/web/www.yourdomain.com
    //$BASE_DIR = $_SERVER['DOCUMENT_ROOT']; // Fehlerhaft
    $BASE_DIR = $mosConfig_absolute_path; // so stimmt der Pfad

    //the path where the browser sees the document root (i.e. http://www.yourdomain.com/)
    // $BASE_URL = "/"; // Falscher Eitrag
    $BASE_URL = $mosConfig_live_site . „/“;

    //this is where the images will be stored relative to the $BASE_DIR (and $BASE_URL)
    //this directory MUST be readable AND writable by the web server.
    $BASE_ROOT = "mambo451/images/stories";

    //In safe mode, directory creation is not permitted.
    $SAFE_MODE = false;

    //************************** END CONFIGURATION *****************************//

    Nun ging zwar der Zugriff auf die Daten, jedoch beim Upload erhalte ich nun den Fehler der Auf die Zeile 71 der Datei Images hinweisst. Dort steht die Upload funktion: do_upload($_FILES['upload'], $BASE_DIR.$BASE_ROOT.$dirPathPost.'/');

    Warum beisst sich das jetzt und wie kann ich das ändern ?

    die images.php als Antwort da das sonst zu gross ist.

    Hat jemand eine Lösung. Hab mit PHP sonst nix zu tun, darum auch die Frage hier im Forum.

    Problem wird auch bei http://www.novocaine.de im Forum diskutiert aber ohne Lösungen bzw. ist vielen das mit dem Upload noch nicht aufgefallen. Vielleicht is hier ja jemand zu finden der den "Durchblick" hat im Code :o)

  2. #2
    Neu an Board
    Registriert seit
    08.11.2004
    Beiträge
    14
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard images.php Part1

    <?
    // $Id: images.php, v 1.0.1 2004/04/16 13:53:30 bpfeifer Exp $
    /**
    * HTMLArea3 addon - ImageManager
    * Based on Wei Zhuo's ImageManager
    * @package Mambo Open Source
    * @Copyright © 2004 Bernhard Pfeifer aka novocaine
    * @ All rights reserved
    * @ Mambo Open Source is Free Software
    * @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
    * @version $Revision: 1.0.1 $
    **/
    define( "_VALID_MOS", 1 );
    $base_path = "../../../../..";
    if (!$my->id) {
    require( "../../../../../administrator/includes/auth.php" );
    }
    if ($my->id && ($my->gid == 2 || ($my->gid >= 19 && $my->gid <= 25))) {
    include 'config.inc.php';

    if(isset($_GET['dir'])) {
    $dirParam = $_GET['dir'];

    if(strlen($dirParam) > 0)
    {
    if(substr($dirParam,0,1)=='/')
    $IMG_ROOT .= $dirParam;
    else
    $IMG_ROOT = $dirParam;
    }
    }

    $refresh_dirs = false;
    $clearUploads = false;

    if(strrpos($IMG_ROOT, '/')!= strlen($IMG_ROOT)-1)
    $IMG_ROOT .= '/';


    if(isset($_GET['create']) && isset($_GET['dir']) && $SAFE_MODE == false)
    {
    create_folder();
    }

    if(isset($_GET['delFile']) && isset($_GET['dir']))
    {
    delete_file($_GET['delFile']);
    }

    if(isset($_GET['delFolder']) && isset($_GET['dir']))
    {
    delete_folder($_GET['delFolder']);
    }

    if(isset($_FILES['upload']) && is_array($_FILES['upload']) && isset($_POST['dirPath']))
    {

    $dirPathPost = $_POST['dirPath'];

    if(strlen($dirPathPost) > 0)
    {
    if(substr($dirPathPost,0,1)=='/')
    $IMG_ROOT .= $dirPathPost;
    else
    $IMG_ROOT = $dirPathPost;
    }

    if(strrpos($IMG_ROOT, '/')!= strlen($IMG_ROOT)-1)
    $IMG_ROOT .= '/';

    do_upload($_FILES['upload'], $BASE_DIR.$BASE_ROOT.$dirPathPost.'/');
    }

    function do_upload($file, $dest_dir)
    {
    global $clearUploads;

    if(is_file($file['tmp_name']))
    {
    //var_dump($file); echo "DIR:$dest_dir";
    move_uploaded_file($file['tmp_name'], $dest_dir.$file['name']);
    chmod($dest_dir.$file['name'], 0666);
    }



    $clearUploads = true;
    }

    function delete_folder($folder)
    {
    global $BASE_DIR, $refresh_dirs;
    //var_dump($BASE_DIR);
    $del_folder = dir_name($BASE_DIR).$folder;
    //echo $del_folder;
    if(is_dir($del_folder) && num_files($del_folder) <= 0) {
    //echo $del_folder.'<br>';
    rm_all_dir($del_folder);
    $refresh_dirs = true;
    }
    }

    function rm_all_dir($dir)
    {
    //$dir = dir_name($dir);
    //echo "OPEN:".$dir.'<Br>';
    if(is_dir($dir))
    {
    $d = @dir($dir);

    while (false !== ($entry = $d->read()))
    {
    //echo "#".$entry.'<br>';
    if($entry != '.' && $entry != '..')
    {
    $node = $dir.'/'.$entry;
    //echo "NODE:".$node;
    if(is_file($node)) {
    //echo " - is file<br>";
    unlink($node);
    }
    else if(is_dir($node)) {
    //echo " - is Dir<br>";
    rm_all_dir($node);
    }
    }
    }
    $d->close();

    rmdir($dir);
    }
    //echo "RM: $dir <br>";
    }

    function delete_file($file)
    {
    global $BASE_DIR;

    $del_image = dir_name($BASE_DIR).$file;

    $del_thumb = dir_name($del_image).'.'.basename($del_image);

    if(is_file($del_image)) {
    unlink($del_image);
    }

    if(is_file($del_thumb)) {
    unlink($del_thumb);
    }
    }

    function create_folder()
    {
    global $BASE_DIR, $IMG_ROOT, $refresh_dirs;

    $folder_name = $_GET['foldername'];

    if(strlen($folder_name) >0)
    {
    $folder = $BASE_DIR.$IMG_ROOT.$folder_name;

    if(!is_dir($folder) && !is_file($folder))
    {
    mkdir($folder,0777);
    chmod($folder,0777);
    $refresh_dirs = true;
    }
    }
    }

    function num_files($dir)
    {
    $total = 0;

    if(is_dir($dir))
    {
    $d = @dir($dir);

    while (false !== ($entry = $d->read()))
    {
    //echo $entry."<br>";
    if(substr($entry,0,1) != '.') {
    $total++;
    }
    }
    $d->close();
    }
    return $total;
    }

    function dirs($dir,$abs_path)
    {
    $d = dir($dir);
    //echo "Handle: ".$d->handle."<br>\n";
    //echo "Path: ".$d->path."<br>\n";
    $dirs = array();
    while (false !== ($entry = $d->read())) {
    if(is_dir($dir.'/'.$entry) && substr($entry,0,1) != '.')
    {
    //dirs($dir.'/'.$entry, $prefix.$prefix);
    //echo $prefix.$entry."<br>\n";
    $path['path'] = $dir.'/'.$entry;
    $path['name'] = $entry;
    $dirs[$entry] = $path;
    }
    }
    $d->close();

    ksort($dirs);
    for($i=0; $i<count($dirs); $i++)
    {
    $name = key($dirs);
    $current_dir = $abs_path.'/'.$dirs[$name]['name'];
    echo ", \"$current_dir\"\n";
    dirs($dirs[$name]['path'],$current_dir);
    next($dirs);
    }
    }

    function parse_size($size)
    {
    if($size < 1024)
    return $size.' Bytes';
    else if($size >= 1024 && $size < 1024*1024)
    {
    return sprintf('%01.2f',$size/1024.0).' KB';
    }
    else
    {
    return sprintf('%01.2f',$size/(1024.0*1024)).' MB';
    }
    }

    function show_image($img, $file, $info, $size)
    {
    global $BASE_DIR, $BASE_URL, $newPath;

    $img_path = dir_name($img);
    $img_file = basename($img);

    $img_url = $BASE_URL.$img_path.'/'.$img_file;

    $filesize = parse_size($size);

    ?>
    <td>
    <table width="102" border="0" cellpadding="0" cellspacing="2">
    <tr>
    <td align="center" class="imgBorder" onMouseOver="pviiClassNew(this,'imgBorderHover')" onMouseOut="pviiClassNew(this,'imgBorder')">
    <a href="javascript:;" onClick="javascript:imageSelected('<? echo $img_url; ?>', <? echo $info[0];?>, <? echo $info[1]; ?>,'<? echo $file; ?>');"><img src="<? echo $img_url; ?>" height="80" alt="<? echo $file; ?> - <? echo $filesize; ?>" border="0"></a></td>
    </tr>
    <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="2">
    <tr>
    <td width="1%"><a href="images.php?delFile=<? echo $img_url; ?>&dir=<? echo $newPath; ?>" onClick="return deleteImage('<? echo $file; ?>');"><img src="edit_trash.gif" width="15" height="15" border="0"></a></td>
    <td width="98%" class="info"><? echo $file; ?></td>
    </tr>
    </table></td>
    </tr>
    </table>
    </td>
    <?
    }

    function show_dir($path, $dir)
    {
    global $newPath, $BASE_DIR, $BASE_URL;

    $num_files = num_files($BASE_DIR.$path);
    ?>
    <td>
    <table width="102" border="0" cellpadding="0" cellspacing="2">
    <tr>
    <td align="center" class="imgBorder" onMouseOver="pviiClassNew(this,'imgBorderHover')" onMouseOut="pviiClassNew(this,'imgBorder')">
    <a href="images.php?dir=<? echo $path; ?>" onClick="changeLoadingStatus('load')">
    <?php
    if ($dir != 'banner')
    {
    ?>
    <img src="folder.gif" width="75" height="75" border=0 alt="<? echo $dir; ?>">
    <?php
    } else {
    ?>
    <img src="bannerfolder.gif" width="75" height="75" border=0 alt="<?php echo $dir; ?>">
    <?php
    }
    ?>
    </a>
    </td>
    </tr>
    <tr>
    <td><table width="100%" border="0" cellspacing="1" cellpadding="2">
    <tr>
    <td width="99%" class="info"><? echo $dir; ?></td>
    </tr>
    </table></td>
    </tr>
    </table>
    </td>
    <?
    }

    function draw_no_results()
    {
    ?>
    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td><div align="center" style="font-size:large;font-weight:bold;color:#CCCCCC;font-family: Helvetica, sans-serif;">No files</div></td>
    </tr>
    </table>
    <?
    }

    function draw_no_dir()
    {
    global $BASE_DIR, $BASE_ROOT;
    ?>
    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td><div align="center" style="font-size:small;font-weight:bold;color:#CC0000;font-family: Helvetica, sans-serif;">Configuration problem: &quot;<? echo $BASE_DIR.$BASE_ROOT; ?>&quot; does not exist.</div></td>
    </tr>
    </table>
    <?
    }


    function draw_table_header()
    {
    echo '<table border="0" cellpadding="0" cellspacing="2">';
    echo '<tr>';
    }

    function draw_table_footer()
    {
    echo '</tr>';
    echo '</table>';
    }

    ?>
    <html>
    <head>
    <title>Image Browser</title>
    <meta **********="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    .imgBorder {
    height: 96px;
    border: 1px solid threedface;
    vertical-align: middle;
    }
    .imgBorderHover {
    height: 96px;
    border: 1px solid threedshadow;
    vertical-align: middle;
    background: #EEE;
    cursor: hand;
    }

    .buttonHover {
    border: 1px solid;
    border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
    cursor: hand;
    background: #EEE;
    }
    .buttonOut
    {
    border: 1px solid;
    border-color: white;
    }

    .imgCaption {
    font-size: 10pt;
    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
    }
    .dirField {
    font-size: 10pt;
    font-family: Arial, Helvetica, sans-serif;
    width:110px;
    }

    .info {
    font-size: 8.5pt;
    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
    }


    -->
    </style>
    <?
    $dirPath = eregi_replace($BASE_ROOT,'',$IMG_ROOT);

    $paths = explode('/', $dirPath);
    $upDirPath = '/';
    for($i=0; $i<count($paths)-2; $i++)
    {
    $path = $paths[$i];
    if(strlen($path) > 0)
    {
    $upDirPath .= $path.'/';
    }
    }

    $slashIndex = strlen($dirPath);
    $newPath = $dirPath;
    if($slashIndex > 1 && substr($dirPath, $slashIndex-1, $slashIndex) == '/')
    {
    $newPath = substr($dirPath, 0,$slashIndex-1);
    }
    ?>
    <script type="text/javascript" src="../popup.js"></script>
    <script type="text/javascript" src="../../dialog.js"></script>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function pviiClassNew(obj, new_style) { //v2.6 by PVII
    obj.className=new_style;
    }

    function goUp()
    {
    location.href = "ImageManager/images.php?dir=<? echo $upDirPath; ?>";
    }

    function changeDir(newDir)
    {
    location.href = "ImageManager/images.php?dir="+newDir;
    }

    function updateDir()
    {
    var newPath = "<? echo $newPath; ?>";
    if(window.top.document.forms[0] != null) {

  3. #3
    Neu an Board
    Registriert seit
    08.11.2004
    Beiträge
    14
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard images.php Part2

    var allPaths = window.top.document.forms[0].dirPath.options;
    //alert("new:"+newPath);
    for(i=0; i<allPaths.length; i++)
    {
    //alert(allPaths.item(i).value);
    allPaths.item(i).selected = false;
    if((allPaths.item(i).value)==newPath)
    {
    allPaths.item(i).selected = true;
    }
    }

    }

    }

    <? if ($refresh_dirs) { ?>
    function refreshDirs()
    {
    var allPaths = window.top.document.forms[0].dirPath.options;
    var fields = ["/" <? dirs($BASE_DIR.$BASE_ROOT,'');?>];

    var newPath = "<? echo $newPath; ?>";

    while(allPaths.length > 0)
    {
    for(i=0; i<allPaths.length; i++)
    {
    allPaths[i]=null; // changed by burn -> post 110 on zhuo.org/htmlarea
    }
    }

    for(i=0; i<fields.length; i++)
    {
    var newElem = document.createElement("OPTION");
    var newValue = fields[i];
    newElem.text = newValue;
    newElem.value = newValue;

    if(newValue == newPath)
    newElem.selected = true;
    else
    newElem.selected = false;

    allPaths.add(newElem);
    }
    }
    refreshDirs();
    <? } ?>

    function imageSelected(filename, width, height, alt)
    {
    var topDoc = window.top.document.forms[0];
    topDoc.f_url.value = filename;
    topDoc.f_width.value= width;
    topDoc.f_height.value = height;
    topDoc.f_alt.value = "";
    topDoc.orginal_width.value = width;
    topDoc.orginal_height.value = height;

    }

    function deleteImage(file)
    {
    if(confirm("Delete image \""+file+"\"?"))
    return true;

    return false;
    }

    function deleteFolder(folder, numFiles)
    {
    if(numFiles > 0) {
    alert("There are "+numFiles+" files/folders in \""+folder+"\".\n\nPlease delete all files/folder in \""+folder+"\" first.");
    return false;
    }

    if(confirm("Delete folder \""+folder+"\"?"))
    return true;

    return false;
    }

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_showHideLayers() { //v6.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i],window.top.document))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
    }

    function changeLoadingStatus(state)
    {
    var statusText = null;
    if(state == 'load') {
    statusText = 'Loading images...';
    }
    else if(state == 'upload') {
    statusText = 'Uploading images...';
    }
    if(statusText != null) {
    var obj = MM_findObj('loadingStatus', window.top.document);
    //alert(obj.innerHTML);
    if (obj != null && obj.innerHTML != null)
    obj.innerHTML = statusText;
    MM_showHideLayers('loading','','show')
    }
    }

    //-->
    </script>
    </head>
    <body onLoad="updateDir();" bgcolor="#FFFFFF">

    <?
    //var_dump($_GET);
    //echo $dirParam.':'.$upDirPath;
    //echo '<br>';
    $d = @dir($BASE_DIR.$IMG_ROOT);

    if($d)
    {
    //var_dump($d);
    $images = array();
    $folders = array();
    while (false !== ($entry = $d->read()))
    {
    $img_file = $IMG_ROOT.$entry;

    if(is_file($BASE_DIR.$img_file) && substr($entry,0,1) != '.')
    {
    $image_info = @getimagesize($BASE_DIR.$img_file);
    if(is_array($image_info))
    {
    $file_details['file'] = $img_file;
    $file_details['img_info'] = $image_info;
    $file_details['size'] = filesize($BASE_DIR.$img_file);
    $images[$entry] = $file_details;
    //show_image($img_file, $entry, $image_info);
    }
    }
    else if(is_dir($BASE_DIR.$img_file) && substr($entry,0,1) != '.')
    {
    $folders[$entry] = $img_file;
    //show_dir($img_file, $entry);
    }
    }
    $d->close();

    if(count($images) > 0 || count($folders) > 0)
    {
    //now sort the folders and images by name.
    ksort($images);
    ksort($folders);

    draw_table_header();

    for($i=0; $i<count($folders); $i++)
    {
    $folder_name = key($folders);
    show_dir($folders[$folder_name], $folder_name);
    next($folders);
    }
    for($i=0; $i<count($images); $i++)
    {
    $image_name = key($images);
    show_image($images[$image_name]['file'], $image_name, $images[$image_name]['img_info'], $images[$image_name]['size']);
    next($images);
    }
    draw_table_footer();
    }
    else
    {
    draw_no_results();
    }
    }
    else
    {
    draw_no_dir();
    }

    ?>
    <script language="JavaScript" type="text/JavaScript">
    MM_showHideLayers('loading','','hide')
    </script>
    </body>
    </html>
    <?php
    } else {
    die ('Direct access to this location is not allowed!');
    }ÿ

  4. #4
    Neu an Board
    Registriert seit
    28.01.2005
    Beiträge
    27
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard hier die lösung...

    in der datei config.inc.php musst du folgende zeile noch ändern:

    $BASE_URL = $mosConfig_live_site . "/";
    //die anführungszeichen sollten beide OBEN sein ;-)

    in der datei images.php musst du folgendes ändern:

    //Die Funktion "do_upload" im Quelltext verschieben!


    Code:
    if ($my->id && ($my->gid == 2 || ($my->gid >= 19 && $my->gid <= 25))) {
    	include 'config.inc.php';
    
    	if(isset($_GET['dir'])) {
    		$dirParam = $_GET['dir'];
    
    		if(strlen($dirParam) > 0)
    		{
    			if(substr($dirParam,0,1)=='/')
    				$IMG_ROOT .= $dirParam;
    			else
    				$IMG_ROOT = $dirParam;
    		}
    	}
    
    function do_upload($file, $dest_dir)
    	{
    		global $clearUploads;
    
    		if(is_file($file['tmp_name']))
    		{
    			//var_dump($file); echo "DIR:$dest_dir";
    			move_uploaded_file($file['tmp_name'], $dest_dir.$file['name']);
    			chmod($dest_dir.$file['name'], 0666);
    		}
    
    
    
    		$clearUploads = true;
    	}
    
    	$refresh_dirs = false;
    	$clearUploads = false;
    Nun kannst Du ohne Probleme Bilder hochladen!

    In der images.php sind noch viele weitere Features versteckt... schaut schaut was euch novocaine mitgebracht hat ;-))

    grüße,
    rené

  5. #5
    Neu an Board
    Registriert seit
    06.12.2004
    Beiträge
    24
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Alternativ kann man auch die kostenpflichtige Version sich installieren.
    Diese ist zu 100% in Mambo integriert, bietet noch mehr Features und man tut auch den Entwickler was gutes, indem man seine Arbeit mal honoriert.

    Ich habs gemacht und bin sehr zufrieden.

+ Antworten

Ähnliche Themen

  1. Mambelfish Installation Probleme wer hilft???
    Von George im Forum Mambo Komponenten
    Antworten: 2
    Letzter Beitrag: 25.02.2006, 13:55
  2. upload probleme
    Von ixibek im Forum Mambo Installation
    Antworten: 0
    Letzter Beitrag: 09.12.2004, 13:17
  3. seltsame Upload Probleme mit Zoom Gallery 2.1.4 RC1
    Von heckpiet im Forum Mambo Komponenten
    Antworten: 7
    Letzter Beitrag: 27.10.2004, 18:08
  4. upload probleme
    Von wasisen im Forum Allgemeine Fragen zu Mambo
    Antworten: 0
    Letzter Beitrag: 03.09.2004, 19:07
  5. Probleme beim Upload von Templates
    Von wlsoft im Forum Mambo 4.5.0 Templates
    Antworten: 3
    Letzter Beitrag: 24.12.2003, 21:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein