Jump to content

Multi Upload


Go to solution Solved by diogocs,

Recommended Posts

Posted

Olá a todos,

Estou a tentar criar um form que possibilite o envio de várias imagens para uma pasta mas estou a ter dificuldades.

Deixo abaixo o código:

index.php:

<form name="nova_fotografia" id="nova_fotografia" method="post" action="teste-foto-ok.php" enctype="multipart/form-data">
<input id='fotografia' name="fotografia[]" type="file" multiple="multiple" />
 <input type="submit">
</form>

teste-foto-ok.php:


<?php
$fotografia = $_FILES['fotografia']['name'];

foreach ($fotografia as $foto) {
$caminho = "images/fotografias/".$foto;
}
move_uploaded_file($_FILES['fotografia']['tmp_name'],$caminho);

?>

Devolve o seguinte erro:

( ! ) Warning: move_uploaded_file() expects parameter 1 to be string, array given ...
Posted (edited)
$_FILES['fotografia']['tmp_name'][X]

em que X vai de 0 a count($_FILES['fotografia']['tmp_name'])

EDIT: e claro, o comentário do HHH acima...

Edited by tiago.f
Posted

Obrigado aos dois.

Referem-se a colocar da seguinte forma?

(Já tinha testado assim e não resultou..)

<?php
$fotografia = $_FILES['fotografia']['name'];
foreach ($fotografia as $foto) {
$caminho = "images/fotografias/".$foto;
move_uploaded_file($_FILES['fotografia']['tmp_name'],$caminho);
}
?>

tiago.f

Podes explicar-me pf como faço para atribuir esses valores a variavel "x"?

Posted

A variável

$_FILES['fotografia']['tmp_name']

é um array, logo terás que iterar cada posição de modo a ires buscar cada uma das imagens que o utilizador escolheu.

Como te disse o tal X vai de 0 a count($_FILES['fotografia']['tmp_name']). Por isso é só criares um ciclo para leres cada 'tmp_name'

  • Solution
Posted

Obrigado mais uma vez pela resposta.

Fiz mais algumas pesquisas e tenho neste momento:

EDIT:

Após alguma pesquisa e testes fiz da seguinte forma:

$total = count($_FILES['fotografia']['name']);


for($i=0; $i<$total; $i++) {

$tmpFilePath = $_FILES['fotografia']['tmp_name'][$i];

if ($tmpFilePath != ""){
$newFilePath = "./images/fotografias/" . $_FILES['fotografia']['name'][$i];

if(move_uploaded_file($tmpFilePath, $newFilePath)) {
  }
 }
}

O unico problema é que ele funciona perfeitamente até 5 fotografias.. se inserir 6 devolve o erro:

"Undefined index: fotografia" - nesta linha:

$total = count($_FILES['fotografia']['name']);
Posted

Assumindo que está tudo bem com as fotos/ficheiros em si, vê se não estás a atingir o limite de tamanho permitido para o upload.

- vê do lado do browser: há um input hidden que podes definir para alterar isto -> Google

- vê do lado do php -> php.ini

Posted

Assumindo que está tudo bem com as fotos/ficheiros em si, vê se não estás a atingir o limite de tamanho permitido para o upload.

- vê do lado do browser: há um input hidden que podes definir para alterar isto -> Google

- vê do lado do php -> php.ini

Era precisamente o filzesize do php.ini

Alterei-o mas esqueci-me de reiniciar o wamp e os valor não eram assumidos. Entretanto utilizei phpinfo(); e reparei que tinha os valores antigos.

Resolvido 😄

Obrigado pelo teu apoio

  • Vote 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.