1
resposta

Failed to open stream: No such file or directory in

Ao Executar o seguinte script encontro o erro Failed to open stream: No such file or directory in. Na maioria das vezes da certo só que em alguns arquivos apresenta o erro

Index.php

<!DOCTYPE html>
<header><h2>Upload de arquivo</h2></header><br>
<head>
    <title>Envio de arquivo</title>
</head>

<body>
<form action="base64.php" method="post" enctype="multipart/form-data">
    Selecione o arquivo: <input type="file" name="arquivo" /><br><br>
    <input type="submit" value="Enviar"/>
</form>
</body>

base64.php

<?php

$dir = "C:/Users/geova/Downloads";
// recebendo o arquivo multipart
$file = $_FILES["arquivo"];
// Move o arquivo da pasta temporaria de upload para a pasta de destino
if (move_uploaded_file($file["tmp_name"], "$dir/" . $file["name"])) {
    echo "Arquivo enviado com sucesso!";
} else {
    echo "Erro, o arquivo não pode ser enviado.";
}


//Arquivo para base 64
$caminho_temp ="$dir/".$file["name"];
$arq= file_get_contents ($caminho_temp);
$base64_en = base64_encode($arq);
$nomedoarquivo = $file["name"];

$txt = fopen('C:\Users\geova\Downloads\teste_export.txt','w');
fwrite($txt,$base64_en);
fclose($txt);

//base 64 para arquivo
$arquivo_base64 = file_get_contents('C:\Users\geova\Downloads\teste_export.txt');
$base64_de = base64_decode($arquivo_base64);
$extesao = strtolower(pathinfo($nomedoarquivo,PATHINFO_EXTENSION));
$arquivo_base64 = fopen('C:/Users/geova/Downloads/teste_export'.'.'.$extesao,'w+');
fwrite($arquivo_base64,$base64_de);
fclose($arquivo_base64);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Geovane! Tudo bem?

Gostaria de pedir desculpas pela demora em responder o seu tópico

Analisando o seu código, percebi que você está definindo o diretório de destino como "C:/Users/geova/Downloads". Certifique-se de que esse diretório realmente existe e que você possui permissão para escrever nele. Além disso, verifique se o arquivo que você está tentando mover para esse diretório também existe.

Outro ponto que pode estar causando o erro é o fato de você estar usando barras invertidas () no caminho do diretório. Em PHP, é recomendado utilizar barras normais (/) ou a constante DIRECTORY_SEPARATOR para garantir a compatibilidade entre diferentes sistemas operacionais. Portanto, sugiro que você altere o diretório para algo como "C:/Users/geova/Downloads" ou "C:\Users\geova\Downloads".

Por fim, certifique-se também de que o arquivo que você está tentando mover possui permissão de leitura e que o diretório de destino possui permissão de escrita.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓