Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Arquivo XML

Estou tentando salvar o nome de um arquivo em um XML, mas da um erro de array indefinido

O Formulário de envio do arquivo

<form action='trabalhos/inserir.php' enctype="multipart/form-data" method='POST'>

<label for="arquivo">Arquivo</label>
<br><input type='file' name='arquivo'><br>

<input id="submit" type='submit' name='submit' value='submit'>
</form

O código de geração do xml

<?php
if(isset($_POST['submit']))
{
$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><job></job>");
$dados = $res->fetchAll(PDO::FETCH_ASSOC);

    $xml->addChild('arquivo', $_POST['arquivo']);

    $asXML = $xml->asXML();
    $idunico = uniqid();
    $file = fopen("$idunico.xml","w+");
    fwrite($file,$asXML);
    fclose($file); 
    print_r(error_get_last());

}
?>

E a mensagem de erro

Warning: Undefined array key "arquivo" Array ( [type] => 2 [message] => Undefined array key "arquivo" [file]

2 respostas
solução!

Dá uma olhada aqui, Marcos: https://cursos.alura.com.br/extra/alura-mais/upload-de-arquivos-com-php-c205

Os arquivos não ficam na variável $_POST e sim na $_FILE.

Vinicius, tenho mais uma dúvida, o XML é gerado a partir dos dados de um formulário, e preciso que tenha um contador, como o campo ID do banco de dados. O XML teria de ficar assim

<job>
    <id>1</id>
    <empresa>Alura</empresa>
    <arquivo>Estudos.pdf</arquivo>
</job>

E a cada novo registro, o id aumenta 1 número. Como que eu posso fazer isso?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software