Ir para o conteúdo
Senavor

Criar uma pasta onde inserir fotos

Mensagens Recomendadas

Senavor    0
Senavor

Boa Tarde,

é o seguinte eu tenho o codigo php para inserir uma imagem na base de dados que é apresentada numa tabela

mas preciso que antes de introduzir as imagens que seja pedido o nome para a pasta onde serao guardadas as mesmas e que o nome fique registrado

na base de dados e que a pasta seja criada.

alguem me pode ajudar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Senavor    0
Senavor
<?php
$host = 'localhost';
$basedados = 'estagio_modulo';
$user = 'root';
$password = '';
$conecta = mysql_connect($host,$user,$password)or die(mysql_error());

mysql_select_db("estagio_modulo") or die(mysql_error());

$foto1 = $_FILES["foto1"];

// Se a foto1 estiver sido selecionada
if (!empty($foto1["name"])) {

// Largura máxima em pixels
$largura = 900;
// Altura máxima em pixels
$altura = 1320;
// Tamanho máximo do arquivo em bytes
$tamanho = 200000;

 // Verifica se o arquivo é uma imagem
 if(!preg_match('/(jpeg|png|gif|bmp|jpg)/', $foto1["type"])){
 echo $error[1] = "Isso não é uma imagem.";
 }

// Pega as dimensões da imagem
$dimensoes = getimagesize($foto1["tmp_name"]);

// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
echo $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}

// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
echo $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}

// Verifica se o tamanho da imagem é maior que o tamanho permitido
if(!empty ($foto1["size"]) > $tamanho) {
 echo $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}

// Se não houver nenhum erro
if (!empty($error) == 0) {

// Pega extensão da imagem
preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $foto1["name"], $ext);

	 // Gera um nome único para a imagem
 echo $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

	 // Caminho de onde ficará a imagem
	 $caminho_imagem = "../foto1s/" . $nome_imagem;

// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto1["tmp_name"], $caminho_imagem);

$strSQL="INSERT INTO book (foto1) VALUES";
$strSQL .="('$nome_imagem')";
$rs = mysql_query($strSQL);

}
}

?>

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xaboto    0
xaboto

Boas no meu projeto também estou a fazer algo semelhante, mas tens de esclarecer melhor isso para te conseguir ajudar xD.

Queres que ao inserir uma imagem seja pedido um nome de uma pasta a criar no momento para alojar essa imagem ou queres que ao inserir uma imagem se peça ao utilizador para escolher uma pasta já criada?

Editado por xaboto

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
help    0
help

Se você tem um sistema de login e senha, o ideal é criar a pasta já quando cadastrar o usuário, tipo:

site.com/fotos/joao/

Quanto a criação da pasta, você já tem definido no seu script

mkdir("pasta_base/$nova_pasta", 0777);

O ideal seria como falei você já ter o nome do usuário, que seria o mesmo para pasta, assim, você passa somente o nome da pasta para o upload.

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Senavor    0
Senavor

Boas no meu projeto também estou a fazer algo semelhante, mas tens de esclarecer melhor isso para te conseguir ajudar xD.

Queres que ao inserir uma imagem seja pedido um nome de uma pasta a criar no momento para alojar essa imagem ou queres que ao inserir uma imagem se peça ao utilizador para escolher uma pasta já criada?

é mais do genero eu tenho um formulario com um input de texto com o qual insiro o nome da pasta... de seguida ha 12 inputs de ficheiro para inserir as fotos... ao clicar no botao criado no final do form devera ser criada a pasta onde serao guardadas as 12 fotos introduzidas pelos inputs

Se você tem um sistema de login e senha, o ideal é criar a pasta já quando cadastrar o usuário, tipo:

site.com/fotos/joao/

Quanto a criação da pasta, você já tem definido no seu script

mkdir("pasta_base/$nova_pasta", 0777);

O ideal seria como falei você já ter o nome do usuário, que seria o mesmo para pasta, assim, você passa somente o nome da pasta para o upload.

não é bem isso que eu pretendo mas obrigado de qualquer jeito :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RuiAlmeida20    1
RuiAlmeida20

<?php
$host = 'localhost';
$basedados = 'estagio_modulo';
$user = 'root';
$password = '';
$conecta = mysql_connect($host,$user,$password)or die(mysql_error());
mysql_select_db("estagio_modulo") or die(mysql_error());
$foto1 = $_FILES["foto1"];
// Se a foto1 estiver sido selecionada
if (!empty($foto1["name"]) && !empty($_POST['pasta_nome'])) {
// Largura máxima em pixels
$largura = 900;
// Altura máxima em pixels
$altura = 1320;
// Tamanho máximo do arquivo em bytes
$tamanho = 200000;
$error = array();
// Verifica se o arquivo é uma imagem
if(!preg_match('/(jpeg|png|gif|bmp|jpg)/', $foto1["type"])){
 $error[] = "Isso não é uma imagem.";
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto1["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
 echo $error[] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
 echo $error[] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if(!empty ($foto1["size"]) > $tamanho) {
 echo $error[] = "A imagem deve ter no máximo ".$tamanho." bytes";
}
//Faz os escapes do nome da pasta, e verifica se esta existe..
//is_dir( ...

// Se não houver nenhum erro
if ($error) {
// Pega extensão da imagem
 preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $foto1["name"], $ext);
 // Gera um nome único para a imagem
 echo $nome_imagem = md5(uniqid(time())) . "." . $ext[1];
 // Caminho de onde ficará a imagem
 $caminho_imagem = "../foto1s/" . $_POST['pasta_nome'] . "/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
 move_uploaded_file($foto1["tmp_name"], $caminho_imagem);
 $strSQL="INSERT INTO book (foto1) VALUES";
 $strSQL .="('$nome_imagem')";
 $rs = mysql_query($strSQL);
} else {
 foreach($error as $msg) {
	 echo $msg . '<br>';
 }
}
}
?>

Vê o que alterei no código e acrescenta aquilo que referi... se não conseguires ou dê algum erro, podes colocar a tua questão.

Editado por RuiAlmeida20

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Senavor    0
Senavor

obrigado :)

agora nessa pasta preciso de inserir 12 fotos mas so com um formulario e um botao submit. achas que me podias ajudar nisso?

Editado por Senavor

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Senavor    0
Senavor

sim eu tentei mandar imagem mas nao deu, por isso vou mandar em codigo

create table book {
	 id int(4) primary key,
	 nome varchar(100),
	 foto1 varchar(100),
	 foto2 varchar(100),
	 foto3 varchar(100),
	 foto4 varchar(100),
	 foto5 varchar(100),
	 foto6 varchar(100),
	 foto7 varchar(100),
	 foto8 varchar(100),
	 foto9 varchar(100),
	 foto10 varchar(100),		
	 foto11 varchar(100),
	 foto12 varchar(100)
};

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RuiAlmeida20    1
RuiAlmeida20


/* TABELA BOOKS */

CREATE TABLE books(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title varchar(100) NOT NULL,
description text NOT NULL,
creation_date_timestamp TIMESTAMP
);
/* TABELA IMG BOOKS */

CREATE TABLE books_img(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
id_book INT(6) NOT NULL,
link text NOT NULL
);

Depois para inserires as imagens e as categorias:

$host = 'localhost';
$basedados = 'estagio_modulo';
$user = 'root';
$password = '';
$conecta = mysql_connect($host,$user,$password)or die(mysql_error());
mysql_select_db("estagio_modulo") or die(mysql_error());
// AQUI OBTENS O TITULO DO LIVRO DE IMAGENS E A DESCRIÇÃO E INSERES NA TABELA books
mysql_query("INSERT")
//obtens o id da ultima insersção.
$tabela_id = mysql_insert_id();
for(new i = 0; i <=12; ++i) {
$foto = $_FILES["foto" . $i];
// Se a foto1 estiver sido selecionada
if (!empty($foto["name"])) {
	// Largura máxima em pixels
	$largura = 900;
	// Altura máxima em pixels
	$altura = 1320;
	// Tamanho máximo do arquivo em bytes
	$tamanho = 200000;
	// Verifica se o arquivo é uma imagem
	if (!preg_match('/(jpeg|png|gif|bmp|jpg)/', $foto["type"])) {
		echo $error[1] = "Isso não é uma imagem.";
	}
	// Pega as dimensões da imagem
	$dimensoes = getimagesize($foto["tmp_name"]);
	// Verifica se a largura da imagem é maior que a largura permitida
	if ($dimensoes[0] > $largura) {
		echo $error[2] = "A largura da imagem não deve ultrapassar " . $largura . " pixels";
	}
	// Verifica se a altura da imagem é maior que a altura permitida
	if ($dimensoes[1] > $altura) {
		echo $error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels";
	}
	// Verifica se o tamanho da imagem é maior que o tamanho permitido
	if (!empty ($foto["size"]) > $tamanho) {
		echo $error[4] = "A imagem deve ter no máximo " . $tamanho . " bytes";
	}
	// Se não houver nenhum erro
	if (!empty($error) == 0) {
		// Pega extensão da imagem
		preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $foto1["name"], $ext);
		// Gera um nome único para a imagem
		echo $nome_imagem = md5(uniqid(time())) . "." . $ext[1];
		// Caminho de onde ficará a imagem
		$caminho_imagem = "../fotos/". gettime() . "/" . $nome_imagem;
		// Faz o upload da imagem para seu respectivo caminho
		move_uploaded_file($foto["tmp_name"], $caminho_imagem);
		$strSQL = "INSERT INTO books_img (`id`, `id_book`, `link`) VALUES (NULL, '".$tabela_id."', '". $caminho_imagem ."');";
		$rs = mysql_query($strSQL);
	}
}
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Senavor    0
Senavor

ou seja em vez de eu ter uma tabela com uma coluna pra cada imagem passo a ter essas duas?

e como é que isso ficaria no form?

Editado por Senavor

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RuiAlmeida20    1
RuiAlmeida20

No form é igual apenas adicionas as informações do book na tabela books, e as imagens pertencentes aos books no books_img mas isso ja ta a fazer o código...

O form algo do género:

<?php for(new $i = 0; i <=12; ++$i) {
echo '<input type="file" name="foto' . $i .'"/>';
}

Este código vai mostrar 12 inputs do tipo file para colocar as imagens

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.