perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 34
Click for quality!




11.02.2012 / 13:16

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragProblem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Hallo,

bin neu hier im Forum und alles andere als ein Programmierguru.

Zum Problem.

ich muß eine XML Datei um einen tag erweitern.

ICh lese die Datei mit XML::Simple ein, erweitere den Hash und wenn ich den neuen Hash wieder in die Datei schreiben will bekomme ich _permission denied_

Das Schreiben in eine andere Datei *.tmp funktioniert.

Selbst ein Workarround, bei dem ich die Original xml Datei löschen will um dann die tmp wieder in xml umzubenennen funktioniert nicht. beim löschen der xml datei bekomme ich wieder permission denied.

Auch wenn ich diesen workarround in einem anderen Script aufrufe.

Code

snip:


my $idxFile2="$docPoolRoot/BATCHES/$idxFile.tmp";
$idxFile2);
print "idxFile: $idxFile2<br>";

#open (INPUT,"<$idxFile");
#my $xmlContent=<INPUT>;
#print Dumper($xmlContent);
$xmlHash=$xmlFile->XMLin("$docPoolRoot/BATCHES/$idxFile", ForceArray=>['document', 'envelopes', 'batch']);

if ($batchType eq 'CLR')
{
$xmlHash->{'batchinfo'}->{'printedCLR'}="$Monatstag.$Monat.$Jahr $Stunden:$Minuten:$Sekunden";
}
else
{
$xmlHash->{'batchinfo'}->{'printedBW'}="$Monatstag.$Monat.$Jahr $Stunden:$Minuten:$Sekunden";
}
#my $xmlOutput=$xmlFileOut->XMLout($xmlHash);

open(my $fhandle, '>:encoding(UTF-8)', $idxFile2)or die $!;
XMLout($xmlHash, OutputFile => $fhandle, NoAttr => 1, rootname => "batches", XMLDecl => '<?xml version="1.0" encoding="utf-8"?>') or die "TEST:$!";

...snap

... funktioniert

dieser


my $idxFile2="$docPoolRoot/BATCHES/$idxFile.tmp";
$idxFile2);
print "idxFile: $idxFile2<br>";

#open (INPUT,"<$idxFile");
#my $xmlContent=<INPUT>;
#print Dumper($xmlContent);
$xmlHash=$xmlFile->XMLin("$docPoolRoot/BATCHES/$idxFile", ForceArray=>['document', 'envelopes', 'batch']);

if ($batchType eq 'CLR')
{
$xmlHash->{'batchinfo'}->{'printedCLR'}="$Monatstag.$Monat.$Jahr $Stunden:$Minuten:$Sekunden";
}
else
{
$xmlHash->{'batchinfo'}->{'printedBW'}="$Monatstag.$Monat.$Jahr $Stunden:$Minuten:$Sekunden";
}
#my $xmlOutput=$xmlFileOut->XMLout($xmlHash);

open(my $fhandle, '>:encoding(UTF-8)', "$docPoolRoot/BATCHES/$idxFile")or die $!;
XMLout($xmlHash, OutputFile => $fhandle, NoAttr => 1, rootname => "batches", XMLDecl => '<?xml version="1.0" encoding="utf-8"?>') or die "TEST:$!";

funktioniert nicht

Datum: 07.07.2008-19:07

Beitragre: Problem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Ooops,

etwas zu schnell auf antworten gedrückt.

Nachtrag:

Für eine schnelle Hilfe wäre ich sehr dankbar

cheers

Thorsten

Datum: 07.07.2008-19:09

Beitragre: Problem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Dann musst Du wohl die Rechte der .xml-Datei ändern. Das hat nix mit Perl zu tun...

Datum: 08.07.2008-11:38

Beitragre: Problem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Danke erstmal für die Antwort.

Die Zugriffsrechte stehen auf _Jeder_ und _Vollzugriff_.

Allerdings ist der Pfad immer Schreibgeschützt, auch wenn ich ihn gerade aufgehoben habe !!!???

Die Datei nicht

Das ganze läuft unter Win XP / 2003 und IIS

danke & cheers

Datum: 08.07.2008-13:37

Beitragre: Problem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Hallo

Übrigens, mit dem Befehl

system("del $batchFile");

geht es auch nicht. Bekomme die Meldung:
Can't spawn "cmd.exe": No such file or directory at

Junge junge, ich bin langsam echt suizid gefährdet.

Fehlerhafte Einstellungen am IIS?

danke & cheers

Datum: 08.07.2008-15:05

Beitragre: Problem beim Dateizugriff (löschen, ändern schreiben
Seitenanfang
Moin moin,

es funktioniert jetzt!

Es lag am Zugriff des IIS. Die initial kopierten Dateien _gehörten_ dem Administrator und die vom cgi erzeugten dem anonymous IIS User. Also auch wenn ich den User des IIS änderte konnte ich auf bestimmte Dateien nicht zugreifen.

Lösung: Anonymous Zugriff abschalten und einen dedizierten User anlegen, mit dem die ersten initial Dateien hergestellt werden, dann kann auch cgi drauf zugreifen

cheers

Datum: 09.07.2008-09:09

-






-
-