0
I made this code and must move three images to the specified folder. He names the three images, but is only moving the first.
I’ve made some modifications to the code, but unfortunately it doesn’t work.
Could give me a light on how to move the three images to the destination folder?
<form method="post" enctype="multipart/form-data" action="../APIChamados/recebeUpload.php">
Selecione uma imagem: <input name="arquivo1" type="file">
<br>
Selecione uma imagem: <input name="arquivo2" type="file">
<br>
Selecione uma imagem: <input name="arquivo3" type="file">
<br>
<input type="submit" value="Salvar">
</form>
<?php
// verifica se foi enviado um arquivo
if ( isset( $_FILES[ 'arquivo1' ][ 'name' ] ) && $_FILES[ 'arquivo1' ][ 'error' ] == 0 ) {
echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo1' ][ 'name' ] . '</strong><br />';
echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo2' ][ 'name' ] . '</strong><br />';
echo 'Você enviou o arquivo: <strong>' . $_FILES[ 'arquivo3' ][ 'name' ] . '</strong><br />';
echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo1' ][ 'type' ] . ' </strong ><br />';
echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo2' ][ 'type' ] . ' </strong ><br />';
echo 'Este arquivo é do tipo: <strong > ' . $_FILES[ 'arquivo3' ][ 'type' ] . ' </strong ><br />';
echo 'Temporáriamente foi salvo em: <strong>' . $_FILES[ 'arquivo1' ][ 'tmp_name' ] . '</strong><br />';
echo 'Seu tamanho é: <strong>' . $_FILES[ 'arquivo1' ][ 'size' ] . '</strong> Bytes<br /><br />';
$arquivo_tmp = $_FILES[ 'arquivo1' ][ 'tmp_name' ];
$nome = $_FILES[ 'arquivo1' ][ 'name' ];
// Pega a extensão
$extensao = pathinfo ( $nome, PATHINFO_EXTENSION );
// Converte a extensão para minúsculo
$extensao = strtolower ( $extensao );
// Somente imagens, .jpg;.jpeg;.gif;.png
// Aqui eu enfileiro as extensões permitidas e separo por ';'
// Isso serve apenas para eu poder pesquisar dentro desta String
if ( strstr ( '.jpg;.jpeg;.gif;.png', $extensao ) ) {
// Cria um nome único para esta imagem
// Evita que duplique as imagens no servidor.
// Evita nomes com acentos, espaços e caracteres não alfanuméricos
$novoNome = uniqid ( time () ) . '.' . $extensao;
// Concatena a pasta com o nome
$destino = 'C:/xampp/htdocs/img/'.$novoNome;
// tenta mover o arquivo para o destino
if ( @move_uploaded_file ( $arquivo_tmp, $destino ) ) {
echo 'Arquivo salvo com sucesso em : <strong>' . $destino . '</strong><br />';
echo ' < img src = "' . $destino . '" />';
}
else
echo 'Erro ao salvar o arquivo. Aparentemente você não tem permissão de escrita.<br />';
}
else
echo 'Você poderá enviar apenas arquivos "*.jpg;*.jpeg;*.gif;*.png"<br />';
}
else
echo 'Você não enviou nenhum arquivo!';
?>
You perform
move_uploaded_file ($arquivo_tmp, $destino)
, whereas$arquivo_tmp
is defined as$_FILES['arquivo1']['tmp_name']
, then it is expected that only move the first one. To move the three, you need to call the function for each of them.– Woss
I’ll try here
– Ulisses Schulz Realino Lima
Should it look like this? // tries to move the file to destination if ( @move_uploaded_file ( $arqui_tmp, $destination ) { $i=0; foreach($_FILES['file'] as $img){ switch($_FILES['type'] [$i]){ echo 'File successfully saved in : <Strong>' . $destination . '</Strong><br />'; echo ' < img src = "' . $destination . '" />'; } } }
– Ulisses Schulz Realino Lima