Autor Zpráva
Ondrej S.
Profil *
Hello,

mám formulár pomocou ktorého by som chcel otvoriť XMLko, načítať z neho určité dáta a vypísať ich na stránku. Všetko funguje ako má, až na jednu drobnosť. Keď následne otvorím načítaný súbor z disku, urobím zmenu a chcem ho uložiť, dostanem chybovú hlášku. To isté sa stane keď chcem súbor vymazať. Ak chcem teda urobiť niečo s týmto súborom, musím najprv vypnúť Firefox.


[b]Kód formuláru:[/b]

<form action="<?php echo $url;?>?action=xml" enctype="multipart/form-data" method="post" class="column-form">
<p>
<label for="wcmXMLLoad">Load:</label>
<input type="file" id="wcmXMLLoad" name="wcmXMLLoad" size="40" />
</p>
<div class="buttons-row">
<p class="first">
<input type="submit" name="submit" value="Load" class="btn-arrow-pri" />
</p>
</div>
</form>


[b]PHP kód:[/b]

else if (isset($_GET["action"]) && $_GET["action"] == "xml")
{
if (file_exists($_FILES["wcmXMLLoad"]["tmp_name"]))
{
$xml = simplexml_load_file($_FILES["wcmXMLLoad"]["tmp_name"]);

$wcmBodyData = $xml->content->field[2];
}
else
{
echo "Failed to open file.";
}
}
Aesir
Profil
Ondrej S.:
dostanem chybovú hlášku
Jakou? Pochlubte se.

PHP kód:
Ten očividně není kompletní a nezvýrazněné se to moc dobře nečte, dejte to sem kdyžtak celé a obalte to příslušným tagem pro kód.
Ondrej S
Profil
ok, tento krát teda prehladnejšie :)

chýbová hláška (pri mazaní):

"Cannot delete xml: It is being used by another person or program. Close any programs that might be using the file and try again."


Upravený kód (mal by teraz fungovať standalone):

<?php
if (isset($_GET["action"]) && $_GET["action"] == "xml")
{
	if (file_exists($_FILES["wcmXMLLoad"]["tmp_name"])) 
	{
    	$xml = simplexml_load_file($_FILES["wcmXMLLoad"]["tmp_name"]);
		$wcmBodyData = $xml->field;
		echo $wcmBodyData;
	}
	else
	{
    	echo "Failed to open file.";
	}
}
?>

<form action="<?php echo $_SERVER["PHP_SELF"]?>?action=xml" enctype="multipart/form-data" method="post">
  <p>
    <label for="wcmXMLLoad">Load:</label>
    <input type="file" id="wcmXMLLoad" name="wcmXMLLoad" size="40" />
  </p>
  <div>
    <p>
      <input type="submit" name="submit" value="Load"/>
    </p>
  </div>
</form>



Načítané XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<field name="body_text" type="RichTextComponent">v16_general_body</field>
</content>
bohyn
Profil
Ondrej S
"Cannot delete xml: It is being used by another person or program. Close any programs that might be using the file and try again."
Tato hlaska neni z tebou predlozeneho kodu. Pravdepodobne se snazis smazat soubor otevreny XML parserem. Napred zavri ten soubor, pak ho smaz.
Ondrej S
Profil
Ok, mal som spustený len Firefox, načítal som XML pomocou kódu, ktorý som pastol vyššie a súbor vypíše tú istú chybovú hlášku keď sa ho snažím vymazať ako pred tým. Keď vypnem Firefox, ide zmazať v pohode.

Skúšal som odmazať riadok
simplexml_load_file($_FILES["wcmXMLLoad"]["tmp_name"]);
a robí to stále.

Mam pocit, že celý problém sa týka odosielania dát z
<form>
.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0