Me ajudem com uma função, não sei mais o que fazer.

1. Me ajudem com uma função, não sei mais o que fazer.

Gunnar Correa
gunnarcorrea

(usa Ubuntu)

Enviado em 07/11/2012 - 13:56h

Galera o problema é com a função: move_uploaded_file


Meu Script:

<?php
ini_set("upload_max_filesize","3M");
if (isset($_FILES[foto1])){

$dir = ""; // Diretório.
$tmp_name = $_FILES['foto1']['tmp_name']; //Recebe o Arquivo temporario.
$name = $_FILES['foto1']['name']; // Recebe o nome do arquivo.
move_uploaded_file($tmp_name, $dir . $name);
echo "Okkss";


}else{echo "não";}


porém resulta em "OKKS" mais não envia nada.


Preciso muito disso, me ajudem e Obrigado.


  


2. Código Completo

Emiliano Eloi Silva Barbosa
emilianoeloi

(usa Slackware)

Enviado em 08/11/2012 - 11:46h

Salve Gunnar!

Cara, com o código que você mandou não da pra ver o todo do script, precisava ver o html também, mas dá pra especular sobre algumas coisas:
1) Na linha 3 do seu código há um erro: "if (isset($_FILES[foto1])){" deveria ser assim: if (isset($_FILES['foto1'])){
2) Vi que se trata de foto, você deveria limitar os tipos de arquivos para fazer upload. Use: $_FILES["file1"]["type"]
3) O diretório para o qual estã tentando mover o arquivo é o "raiz", ou seja onde está o seu script php. talvez você esteja procurando no lugar errado.

LOM: http://www.w3schools.com/php/php_file_upload.asp



3. Re: Me ajudem com uma função, não sei mais o que fazer.

Gunnar Correa
gunnarcorrea

(usa Ubuntu)

Enviado em 08/11/2012 - 13:35h

Então, consegui depois de ler muitos e muitos tutoriais, algo super básico:

if (isset($_POST[aceito])){

$dir = "anuncio/"; // Diretório.
//file1
$tmp_name = $_FILES['foto1']['tmp_name']; //Recebe o Arquivo temporario.
$name = $_FILES['foto1']['name']; // Recebe o nome do arquivo.
move_uploaded_file($tmp_name, $dir . $name);
//file2
$tmp_name1 = $_FILES['foto2']['tmp_name']; //Recebe o Arquivo temporario.
$name1 = $_FILES['foto2']['name']; // Recebe o nome do arquivo.
move_uploaded_file($tmp_name1, $dir . $name1);
//file3
$tmp_name2 = $_FILES['foto3']['tmp_name']; //Recebe o Arquivo temporario.
$name2 = $_FILES['foto3']['name']; // Recebe o nome do arquivo.
move_uploaded_file($tmp_name2, $dir . $name2);


Envio 3 imagem e pra cada uma função é executada...Já tah funcionando.


Porém como vc falo, tenho que limitar o tamanho, como faço isso agora?

o sistema esta ai em cima...


Obrigado.


4. Tamanho em bytes

Emiliano Eloi Silva Barbosa
emilianoeloi

(usa Slackware)

Enviado em 08/11/2012 - 14:31h

Opa!

Use o $_FILES["file1"]["size"].

Emiliano


5. Re: Me ajudem com uma função, não sei mais o que fazer.

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 06/12/2012 - 20:48h

Uma dica bacana é voce criar um array de arquivos no form

<input type='file' name='arquivo[]' /> 


e utilizar em quantos forem necessarios, para a extração basta utilizar foreach


foreach( $_FILES as $arquivo ) {
$nomeArquivo = $arquivo['name'];
$tipoArquivo = $arquivo['type'];

if ( $nomeArquivo != '' && $tipoArquivo == 'image/jpeg' || $tipoArquivo == 'image/png' ) {
// realiza o upload
}
}


isso reduz a quantidade de código a escrever e garante que se um funcionar todos funcionarão.


uma dica bem interessante pra manipulação de imagens no momento do upload é o ImageMagick, já vem por padrão instalado no Ubuntu, servidores web com CentOS e vc só precisa executar um comando pra verificar o tamanho em bytes, dimensoes, redimensionar, etc... vale a pena a leitura

http://www.imagemagick.org/script/command-line-tools.php


6. Re: Me ajudem com uma função, não sei mais o que fazer.

Gunnar Correa
gunnarcorrea

(usa Ubuntu)

Enviado em 07/12/2012 - 08:01h

Então, consegui fazer o sistena funcionar, só que bem simples mesmo.
Array acho que não serviria pois preciso do link das 3 img, ou seja do caminho.
Vou ter que atualizar o sistema para aceitar só jpg, gif, mbp, png e no maximo 500K.

Podes me ajudar com isso?
Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts