Ошибка PHP присутствует только в Internet Explorer - PullRequest
0 голосов
/ 02 августа 2011

Хорошо, это сбило меня с толку.Мой скрипт работает в Mozilla, но не в IE.Я получаю эту ошибку в IE:

Warning: move_uploaded_file(uploads/properties/yh96gapdna8amyhhmgcniskcvk9p0u37/) [function.move-uploaded-file]: failed to open stream: Is a directory in /homepages/19/d375499187/htdocs/sitename/include/session.php on line 602

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpJkiaF3' to 'uploads/properties/yh96gapdna8amyhhmgcniskcvk9p0u37/' in /homepages/19/d375499187/htdocs/sitename/include/session.php on line 602

мой код в Session.php:

function addPhoto($subphotoSize,$subphotoType,$subphotoTmpname,$subphotoDesc,$subfieldID,$subsessionid){
    global $database, $form;

    /* Get random string for directory name */
    $randNum = $this->generateRandStr(10);

    $maxFileSize = 2500000; // bytes (2 MB)
    $filerootpath = PHOTOS_DIR.$subsessionid."/";
    if($subphotoType == "image/png"){
        $filename = $randNum.".png";
    } else if ($subphotoType == "image/jpeg"){
        $filename = $randNum.".jpg";
    }
    $fullURL = $filerootpath.$filename;

    /* Image error checking */
    $field = "photo";
    if(!$subphotoTmpname){
        $form->setError($field, "* No file selected");
    } else {
        if($subphotoSize > $maxFileSize) {
            $form->setError($field, "* Your photo is above the maximum of ".$maxFileSize."Kb");
        } else if (!is_dir($filerootpath)){
            mkdir($filerootpath,0777);
            chmod($filerootpath,0777);
        }
        move_uploaded_file($subphotoTmpname, "$fullURL");
    }
    /* Errors exist, have user correct them */
    if($form->num_errors > 0){
        return 1;  //Errors with form
    } else {
        if($subfieldID == "1"){ // If the first field...
            $is_main_photo = 1;
        } else {
            $is_main_photo = 0;
        }
        if(!$database->addNewPhoto($ownerID,$subphotoDesc,$fullURL,$userSession,$is_main_photo, $subsessionid)){
            return 2; // Failed to add to database
        }
    }
    return 0; // Success
}

Это создает папку без проблем, но больше ничего не делает.

1 Ответ

1 голос
/ 02 августа 2011

Добавьте сообщение в журнал, чтобы узнать значение $ subphotoType. Я предполагаю, что когда вы загружаете файл из Internet Explorer, он не является ни image / png, ни image / jpeg, в этом случае $ filename будет пустым, потому что у вас нет предложения else.

if($subphotoType == "image/png"){
    $filename = $randNum.".png";
} else if ($subphotoType == "image/jpeg"){
    $filename = $randNum.".jpg";
} else {
    // No else! $filename will be empty.
}

Если вы правильно настроите параметры отчетов об ошибках, вы должны увидеть уведомление о том, что вы пытаетесь использовать неопределенную переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...