Ajax image upload-form zurück forbidden 403-Fehler

HALLO alle,

Ich bin derzeit am basteln mit dieser pre-Autor ajax/php Bild-Upload-Skript, aber nach fast 2 Tage versucht herauszufinden, warum es wirft 403 forbidden Fehler(Sie haben keine Berechtigung zum access /ajaxupload.php
auf diesem server), ich bin out-of-Optionen, sondern um Fragen an die gurus hier.

Ich vermute, es hat etwas zu tun mit meiner hosts-server-Einstellungen, aber bevor ich ärger Ihnen(dauert ein Tag in der Regel für Sie, um wieder mit Antworten), ich dachte, ich könnte überprüfen mit Euch, im Falle dass mir etwas fehlt, weil ich bin neu mit ajax, und ich vermute, dass dies ist, wo das Skript zu einem Fehler.

Vielen Dank, wer kann vorschlagen, was ich falsch mache.

Prost, Lea.

HTML: upload-Formular:

<form action="http://www.mysite.com/ajaxupload.php" method="post" name="sleeker" id="sleeker" enctype="multipart/form-data">
    <input type="hidden" name="maxSize" value="9999999999" />
    <input type="hidden" name="maxW" value="200" />
    <input type="hidden" name="fullPath" value="http://mysite.com/uploads/" />
    <input type="hidden" name="relPath" value="../uploads/" />
    <input type="hidden" name="colorR" value="255" />
    <input type="hidden" name="colorG" value="255" />
    <input type="hidden" name="colorB" value="255" />
    <input type="hidden" name="maxH" value="300" />
    <input type="hidden" name="filename" value="filename" />
    <p><input type="file" name="filename" onchange="ajaxUpload(this.form,'http://mysite.com/uploader.php?filename=name&amp;maxSize=9999999999&amp;maxW=200&amp;fullPath=http://mysite.com/uploads/&amp;relPath=../uploads/&amp;colorR=255&amp;colorG=255&amp;colorB=255&amp;maxH=300','upload_area','File Uploading Please Wait...&lt;br /&gt;&lt;img src=\'../images/loader_light_blue.gif\' width=\'128\' height=\'15\' border=\'0\' /&gt;','&lt;img src=\'../images/error.gif\' width=\'16\' height=\'16\' border=\'0\' /&gt; Error in Upload, check settings and path info in source code.'); return false;" /></p>
</form>

JS: ajaxupload.js

function $m(theVar){
    return document.getElementById(theVar)
}
function remove(theVar){
    var theParent = theVar.parentNode;
    theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
    if(obj.addEventListener)
        obj.addEventListener(evType, fn, true)
    if(obj.attachEvent)
        obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
    if(obj.detachEvent){
        obj.detachEvent('on'+type, fn);
    }else{
        obj.removeEventListener(type, fn, false);
    }
}
function isWebKit(){
    return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxUpload(form,url_action,id_element,html_show_loading,html_error_http){
    var detectWebKit = isWebKit();
    form = typeof(form)=="string"?$m(form):form;
    var erro="";
    if(form==null || typeof(form)=="undefined"){
        erro += "The form of 1st parameter does not exists.\n";
    }else if(form.nodeName.toLowerCase()!="form"){
        erro += "The form of 1st parameter its not a form.\n";
    }
    if($m(id_element)==null){
        erro += "The element of 3rd parameter does not exists.\n";
    }
    if(erro.length>0){
        alert("Error in call ajaxUpload:\n" + erro);
        return;
    }
    var iframe = document.createElement("iframe");
    iframe.setAttribute("id","ajax-temp");
    iframe.setAttribute("name","ajax-temp");
    iframe.setAttribute("width","0");
    iframe.setAttribute("height","0");
    iframe.setAttribute("border","0");
    iframe.setAttribute("style","width: 0; height: 0; border: none;");
    form.parentNode.appendChild(iframe);
    window.frames['ajax-temp'].name="ajax-temp";
    var doUpload = function(){
        removeEvent($m('ajax-temp'),"load", doUpload);
        var cross = "javascript: ";
        cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
        $m(id_element).innerHTML = html_error_http;
        $m('ajax-temp').src = cross;
        if(detectWebKit){
            remove($m('ajax-temp'));
        }else{
            setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
    addEvent($m('ajax-temp'),"load", doUpload);
    form.setAttribute("target","ajax-temp");
    form.setAttribute("action",url_action);
    form.setAttribute("method","post");
    form.setAttribute("enctype","multipart/form-data");
    form.setAttribute("encoding","multipart/form-data");
    if(html_show_loading.length > 0){
        $m(id_element).innerHTML = html_show_loading;
    }
    form.submit();
}

PHP: ajaxupload.php

<?php
    function uploadImage($fileName, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH = null){
        $folder = $relPath;
        $maxlimit = $maxSize;
        $allowed_ext = "jpg,jpeg,gif,png,bmp";
        $match = "";
        $filesize = $_FILES[$fileName]['size'];
        if($filesize > 0){  
            $filename = strtolower($_FILES[$fileName]['name']);
            $filename = preg_replace('/\s/', '_', $filename);
            if($filesize < 1){ 
                $errorList[] = "File size is empty.";
            }
            if($filesize > $maxlimit){ 
                $errorList[] = "File size is too big.";
            }
            if(count($errorList)<1){
                $file_ext = preg_split("/\./",$filename);
                $allowed_ext = preg_split("/\,/",$allowed_ext);
                foreach($allowed_ext as $ext){
                    if($ext==end($file_ext)){
                        $match = "1"; //File is allowed
                        $NUM = time();
                        $front_name = substr($file_ext[0], 0, 15);
                        $newfilename = $front_name."_".$NUM.".".end($file_ext);
                        $filetype = end($file_ext);
                        $save = $folder.$newfilename;
                        if(!file_exists($save)){
                            list($width_orig, $height_orig) = getimagesize($_FILES[$fileName]['tmp_name']);
                            if($maxH == null){
                                if($width_orig < $maxW){
                                    $fwidth = $width_orig;
                                }else{
                                    $fwidth = $maxW;
                                }
                                $ratio_orig = $width_orig/$height_orig;
                                $fheight = $fwidth/$ratio_orig;

                                $blank_height = $fheight;
                                $top_offset = 0;

                            }else{
                                if($width_orig <= $maxW && $height_orig <= $maxH){
                                    $fheight = $height_orig;
                                    $fwidth = $width_orig;
                                }else{
                                    if($width_orig > $maxW){
                                        $ratio = ($width_orig / $maxW);
                                        $fwidth = $maxW;
                                        $fheight = ($height_orig / $ratio);
                                        if($fheight > $maxH){
                                            $ratio = ($fheight / $maxH);
                                            $fheight = $maxH;
                                            $fwidth = ($fwidth / $ratio);
                                        }
                                    }
                                    if($height_orig > $maxH){
                                        $ratio = ($height_orig / $maxH);
                                        $fheight = $maxH;
                                        $fwidth = ($width_orig / $ratio);
                                        if($fwidth > $maxW){
                                            $ratio = ($fwidth / $maxW);
                                            $fwidth = $maxW;
                                            $fheight = ($fheight / $ratio);
                                        }
                                    }
                                }
                                if($fheight == 0 || $fwidth == 0 || $height_orig == 0 || $width_orig == 0){
                                    die("FATAL ERROR REPORT ERROR CODE [add-pic-line-67-orig] to <a href='http://www.atwebresults.com'>AT WEB RESULTS</a>");
                                }
                                if($fheight < 45){
                                    $blank_height = 45;
                                    $top_offset = round(($blank_height - $fheight)/2);
                                }else{
                                    $blank_height = $fheight;
                                }
                            }
                            $image_p = imagecreatetruecolor($fwidth, $blank_height);
                            $white = imagecolorallocate($image_p, $colorR, $colorG, $colorB);
                            imagefill($image_p, 0, 0, $white);
                            switch($filetype){
                                case "gif":
                                    $image = @imagecreatefromgif($_FILES[$fileName]['tmp_name']);
                                break;
                                case "jpg":
                                    $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']);
                                break;
                                case "jpeg":
                                    $image = @imagecreatefromjpeg($_FILES[$fileName]['tmp_name']);
                                break;
                                case "png":
                                    $image = @imagecreatefrompng($_FILES[$fileName]['tmp_name']);
                                break;
                            }
                            @imagecopyresampled($image_p, $image, 0, $top_offset, 0, 0, $fwidth, $fheight, $width_orig, $height_orig);
                            switch($filetype){
                                case "gif":
                                    if(!@imagegif($image_p, $save)){
                                        $errorList[]= "PERMISSION DENIED [GIF]";
                                    }
                                break;
                                case "jpg":
                                    if(!@imagejpeg($image_p, $save, 100)){
                                        $errorList[]= "PERMISSION DENIED [JPG]";
                                    }
                                break;
                                case "jpeg":
                                    if(!@imagejpeg($image_p, $save, 100)){
                                        $errorList[]= "PERMISSION DENIED [JPEG]";
                                    }
                                break;
                                case "png":
                                    if(!@imagepng($image_p, $save, 0)){
                                        $errorList[]= "PERMISSION DENIED [PNG]";
                                    }
                                break;
                            }
                            @imagedestroy($filename);
                        }else{
                            $errorList[]= "CANNOT MAKE IMAGE IT ALREADY EXISTS";
                        }   
                    }
                }       
            }
        }else{
            $errorList[]= "NO FILE SELECTED";
        }
        if(!$match){
            $errorList[]= "File type isn't allowed: $filename";
        }
        if(sizeof($errorList) == 0){
            return $fullPath.$newfilename;
        }else{
            $eMessage = array();
            for ($x=0; $x<sizeof($errorList); $x++){
                $eMessage[] = $errorList[$x];
            }
            return $eMessage;
        }
    }

    $filename = strip_tags($_REQUEST['filename']);
    $maxSize = strip_tags($_REQUEST['maxSize']);
    $maxW = strip_tags($_REQUEST['maxW']);
    $fullPath = strip_tags($_REQUEST['fullPath']);
    $relPath = strip_tags($_REQUEST['relPath']);
    $colorR = strip_tags($_REQUEST['colorR']);
    $colorG = strip_tags($_REQUEST['colorG']);
    $colorB = strip_tags($_REQUEST['colorB']);
    $maxH = strip_tags($_REQUEST['maxH']);
    $filesize_image = $_FILES[$filename]['size'];
    if($filesize_image > 0){
        $upload_image = uploadImage($filename, $maxSize, $maxW, $fullPath, $relPath, $colorR, $colorG, $colorB, $maxH);
        if(is_array($upload_image)){
            foreach($upload_image as $key => $value) {
                if($value == "-ERROR-") {
                    unset($upload_image[$key]);
                }
            }
            $document = array_values($upload_image);
            for ($x=0; $x<sizeof($document); $x++){
                $errorList[] = $document[$x];
            }
            $imgUploaded = false;
        }else{
            $imgUploaded = true;
        }
    }else{
        $imgUploaded = false;
        $errorList[] = "File Size Empty";
    }
?>
<?php
    if($imgUploaded){
        echo '<img src="../images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!<br /><img src="'.$upload_image.'" border="0" />';
    }else{
        echo '<img src="../images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: ';
        foreach($errorList as $value){
                echo $value.', ';
        }
    }
?>
  • Das Hochladen von Skripts müssen Sie den Schreibzugriff auf das Zielverzeichnis. haben, überprüfen Sie diese?
  • Sie sind in der Lage, manuell navigieren Sie zu der PHP-Datei richtig?
  • Ja, das upload-dir CHMOD 777, und das gleiche problem tritt auf. @Chacha102 ja, ich bin in der Lage, suchen Sie die Datei manuell.
  • Ich habe nichts für Sie dabei, aber ich bin gefallen in der Liebe mit der Verwendung von flash für file-uploads.
InformationsquelleAutor Lea | 2009-08-03
Schreibe einen Kommentar