Папка IIS8 + PHP + samba не может читать или записывать в папку - PullRequest
0 голосов
/ 07 октября 2019

Так что в основном я создаю веб-страницу (php + js) на xampp, которая позволяет пользователям заполнять форму, и в этой форме они могут загружать несколько изображений. Сайт работал нормально, поэтому я загружаю его в производство на сервере с IIS8. Форма отлично работает, но я не могу загрузить или просмотреть загруженные изображения.

Изображения загружаются на диск samba, в xampp у меня не было проблем, это работало так же, как и на IIS. ошибка, говорящая, что у меня нет разрешений. я не знаю, что я делаю не так

это код для получения изображений

    <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['id'])){
    $id = $_POST['id']; 
    $directory = '\\\\server\\'.$id.'\\';
    $directory = '\\\\server\\'.$id.'\\';
    $local = glob("" . $directory . "{*.jpg,*.gif,*.png}", GLOB_BRACE);
    $img_arr = array();
    if($local){
        $x=1;
    }else{
        $x=0;
    }
    foreach($local as $item)
    {
        $image = $item;
        $imageData = base64_encode(file_get_contents($image));
        $src = 'data: '.mime_content_type($image).';base64,'.$imageData;
        $img_arr [] = array('mime'=> mime_content_type($image),'imgDt'=> $imageData); 
    }
}
if ($x==0){
    $response = [
        'status'=>'falhou',
        'values' => $local
    ];
}else{
    $response = [
        'status'=>'sucesso',
        'values' => $img_arr
    ];
}

header('Content-Type: application/json');
echo json_encode($response);
?>

и это код для добавления изображений

if (!file_exists('\\\\server\\'.$tmstp)) {
        mkdir('\\\\server\\'.$tmstp);  
    }
    $uploadDir = '\\\\server\\'.$tmstp.'\\';

    if(!empty($_FILES['anex'])){
        foreach ($_FILES['anex']['name'] as $key=>$ficheiro) {
            $fileName = basename($_FILES['anex']['name'][$key]);
            $tmpname = $_FILES['anex']['tmp_name'][$key]; 
            $targetFilePath = $uploadDir . $fileName; 
            $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); 
            $allowTypes = array('jpg', 'png', 'jpeg', 'gif'); 
            if(in_array($fileType, $allowTypes)){ 
                if(file_exists($targetFilePath)) {
                    //chmod($targetFilePath,0755); //Change the file permissions if allowed
                    unlink($targetFilePath); //remove the file
                }
                if(move_uploaded_file($tmpname, $targetFilePath)){ 
                    $uploadedFile = $fileName; 
                    if ($i=0){
                        $anex=$fileName;
                        $i++;
                        $uploadStatus = 1;
                        $hf=true;
                    }
                    else{
                        $anex=$anex .';' . $fileName;
                        $uploadStatus = 1;
                        $hf=true;
                        $rspimg = 'Upload fotos com sucesso';
                    }
                }else{ 
                    $uploadStatus = 0; 
                    $rspimg = 'Ouve um erro com o UPLOAD das imagens'; 
                } 
            }else{ 
                $uploadStatus = 0; 
                $rspimg = 'Só JPG, JPEG, PNG ou GIF'; 

            } 
        }
    }else{
        $hf = false;
    }

я уже пытался создать виртуальную папку в IIS, но она все еще не работает

...