PHP записывает файл на локальный хост, но не на IIS 8 - PullRequest
0 голосов
/ 05 марта 2019

Пожалуйста, помогите, я записываю файл в мою папку applicationdir/uploads/.При записи файла на мой локальный хост через wamp64 host, файл генерируется идеально.

Однако, когда я пытаюсь это сделать на моем IIS 8.0 server, форма отправляет сообщение об ошибке, но файл не выдаетсясоздал ...

Я использую команду File_Put_Contents для создания файла.

Я прочитал другие сообщения и, как указано другими, я изменил свое имя applicationpool\MYAppPool нанапоминать название приложения (безрезультатно).Я также разрешил iis_iusrs разрешения на запись в каталог.

Есть мысли?PHP НИЖЕ:

<?php
    if( $_SERVER['REQUEST_METHOD']=='POST' && !empty( $_POST['xml'] ) ){
        $Counter = date("Y-m-d") . ' ' . Time();
        $file  = 'uploads/' . $Counter . ' - Export.xml';
        $bytes = file_put_contents( $file, $_POST['xml'] );
        exit( sprintf('%d bytes written to %s',$bytes,realpath($file) ) );
    }
?>

Снимок экрана:

При отправке

Я не понимаю, как это будет иметь значение, но вот JavaScriptкод передачи данных XML на сервер.Javascript:

<script>
   var template = [
              '<?xml version="1.0"?>',
              '<unattend xmlns="urn:schemas-microsoft-com:unattend">',
              '<Data>',
              ' <SubmitBy><?SubmitBy?></SubmitBy>',
              ' <Level10><?Level10?></Level10>',
              ' <Level1><?Level1?></Level1>',
              ' <Level2><?Level2?></Level2>',
              ' <Level3><?Level3?></Level3>',
              ' <Level4><?Level4?></Level4>',
              ' <Title><?Title?></Title>',
              ' <Subject><?Subject?></Subject>',
              ' <Author><?Author?></Author>',
              ' <Keywords1><?Keywords1?></Keywords1>',
              ' <Keywords2><?Keywords2?></Keywords2>',
              ' <Destroy_Date><?Destroy_Date?></Destroy_Date>',
              '</Data>',
              '</unattend>'
            ].join('\r\n');


            const ajax=function( params ){
                with( new XMLHttpRequest() ){
                    onreadystatechange=function(e){
                        if( this.status==200 && this.readyState==4 ){
                            alert( this.response )
                        }
                    }
                    open( 'POST', location.href, true );
                    setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    send( params );
                }
            }

            document.addEventListener('DOMContentLoaded', ()=>{
                document.querySelector('input[ type="button" ]').addEventListener('click', e=>{
                    let vars={};                    
                    Array.prototype.slice.call( document.querySelectorAll('form > input[ type="text" ]') ).forEach( field =>{
                     vars[ field.name ]=field.value
                      });
                       Array.prototype.slice.call( document.querySelectorAll('select') ).forEach( field =>{
                     vars[ field.name ]=field.value
                      });
                         Array.prototype.slice.call( document.querySelectorAll('form > input[ type="date" ]') ).forEach( field =>{
                     vars[ field.name ]=field.value
                      });
                    let xml=template.replace(/<\?(\w+)\?>/ig, (match,name)=>{
                        return vars[name];
                    });
                    ajax.call( this, 'xml='+xml);
                })
            });
        </script>
...