Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS

Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 16:05

Boa tarde, galera tenho um sistema de upload que roda legal, já está certo!

Mas este sistema fica dentro de uma area restrita quero saber como faço para capturar o id do usuário e criar um novo diretório com o nome dele!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

15-12-2011 16:08

Nesse link abaixo tem um exemplo baseado em um valor do MySQL

Criando-pastas-com-base-no-banco-de-dad ... _6493.html
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 16:22

Obrigado, estou analisando e testando.

Mas eu quero que crie a pasta após o usuário clicar no botão para enviar os arquivos....

Pelo que pude ver este código acessa o bd e cria pastas dos usuários...

Estou buscando um processo dinamico.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

15-12-2011 16:31

Você pode simplesmente adicionar o mkdir exatamente onde é obtido os dados do formulário. Vai dar o mesmo resultado.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 16:39

Eu fiz isso e está dando o seguinte erro:

Notice: Undefined variable: usuario in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Notice: Undefined variable: usuario in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Warning: mkdir() [function.mkdir]: File exists in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Notice: Undefined variable: usuario in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Warning: mkdir() [function.mkdir]: File exists in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Strict Standards: Only variables should be passed by reference in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 54
0
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 16:47

Fiz umas alterações... a pasta está sendo criada, contudo os arquivo não estão sendo enviados para ela, estão ficando na pasta raiz...

e apresenta os seguintes erros....


Warning: mkdir() [function.mkdir]: File exists in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 13

Notice: Undefined index: PASTA in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 16

Strict Standards: Only variables should be passed by reference in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 55

Notice: Undefined index: pasta in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\gravar.php on line 95
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

15-12-2011 16:49

Como ficou sem mkdir?
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 16:54


<?php include("config.php"); ?> <?php // Pasta onde o arquivo vai ser salvo $_PASTA['pasta'] = $query=mysql_query("SELECT nome FROM cadastro"); while($dados=mysql_fetch_array($query)) { extract($dados); mkdir("uploads/$nome", 0777); } $_UP['pasta'] = $_PASTA; // Tamanho máximo do arquivo (em Bytes) $_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb // Array com as extensões permitidas $_UP['extensoes'] = array('jpg', 'png', 'gif'); // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único) $_UP['renomeia'] = false; // Array com os tipos de erros de upload do PHP $_UP['erros'][0] = 'Não houve erro'; $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP'; $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML'; $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente'; $_UP['erros'][4] = 'Não foi feito o upload do arquivo'; // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro if ($_FILES['arquivo']['error'] != 0) { die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]); exit; // Para a execução do script } // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar // Faz a verificação da extensão do arquivo $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name']))); if (array_search($extensao, $_UP['extensoes']) === false) { echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif"; } // Faz a verificação do tamanho do arquivo else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) { echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb."; } // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta else { // Primeiro verifica se deve trocar o nome do arquivo if ($_UP['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg $nome_final = time().'.jpg'; } else { // Mantém o nome original do arquivo $nome_final = $_FILES['arquivo']['name']; } // Depois verifica se é possível mover o arquivo para a pasta escolhida if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) { // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo echo "Upload efetuado com sucesso!"; echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>'; } else { // Não foi possível fazer o upload, provavelmente a pasta está incorreta echo "Não foi possível enviar o arquivo, tente novamente"; } } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

15-12-2011 16:59

Acho que um dos erros está aqui

$_UP['pasta'] = $_PASTA;

Você não pode usar $_PASTA para tentar obter o nome da pasta criada. Se a pasta criada será $nome, seria melhor você definir assim:

$_UP['pasta'] = "uploads/$nome";
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

15-12-2011 17:07

Ele não acusou mais o erro, contudo o arquivo está ficando na pasta raiz!!!
Não está sendo enviado para a pasta que acabou de ser criada....

Posteriormente vou adicionar o include("restrito.php") o que exige a autenticação do usuário e consequentemente gravar os arquivos na pasta dele!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

15-12-2011 18:05

Pode ser que aconteça o seguinte, como a pasta é criada quase no mesmo momento do upload, pode não dar tempo para a pasta ser criada. Tenta usar o sleep.

sleep(1);

O sleep vai dar 1 segundo de atraso, e deve ser colocado logo após a criação da pasta.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

16-12-2011 11:08

Adicionei e ficou assim:


// Depois verifica se é possível mover o arquivo para a pasta escolhida
sleep(3);

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'] . $nome_final)) {

// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo

echo "Upload efetuado com sucesso!";

echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';

}

contudo não funcionou! ele continua deixando o arquivo na pasta raiz!...

:|
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

16-12-2011 12:48

Tenta usar o nome da pasta manualmente "uploads/usuariotal" no move_uploaded_file, de teste.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

16-12-2011 14:04

Não sei se alterei da forma correta...

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP[uploads/teste] . $nome_final)) {

ele criou uma pasta com o nome "teste teste" e o arquivo foi enviado para a pasta raiz...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

16-12-2011 15:08

A parte da pasta onde o arquivo vai ser criado junto com o nome é essa

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], ...)) {

Te indiquei fazer manualmente

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], '/uploads/teste/$nome_final')) {
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

19-12-2011 13:08


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php include("restrito.php"); ?> <?php //captura o nome de usuário session_start(); $_SESSION["login"]; $usuario = $_SESSION["login"]; echo "$usuario"; // Pasta onde o arquivo vai ser salvo $_PASTA['pasta'] = mkdir("uploads/$usuario", 0777); // Tamanho máximo do arquivo (em Bytes) $_UP['tamanho'] = 100000 * 100000 * 2; // 2Mb // Array com as extensões permitidas $_UP['extensoes'] = array('jpg', 'png', 'gif'); // Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único) $_UP['renomeia'] = false; // Array com os tipos de erros de upload do PHP $_UP['erros'][0] = 'Não houve erro'; $_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP'; $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML'; $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente'; $_UP['erros'][4] = 'Não foi feito o upload do arquivo'; // Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro if ($_FILES['arquivo']['error'] != 0) { die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]); exit; // Para a execução do script } // Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar // Faz a verificação da extensão do arquivo $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name']))); if (array_search($extensao, $_UP['extensoes']) === false) { echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif"; } // Faz a verificação do tamanho do arquivo else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) { echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb."; } // O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta else { // Primeiro verifica se deve trocar o nome do arquivo if ($_UP['renomeia'] == true) { // Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg $nome_final = time().'.jpg'; } else { // Mantém o nome original do arquivo $nome_final = $_FILES['arquivo']['name']; } sleep(1); // Depois verifica se é possível mover o arquivo para a pasta escolhida if (move_uploaded_file($_FILES['arquivo']['tmp_name'], '../../up_teste/uploads/$nome_final')) { // Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo echo "Upload efetuado com sucesso!"; echo '<br /><a href="' . $_UP['pasta'] . $nome_final . '">Clique aqui para acessar o arquivo</a>'; } else { // Não foi possível fazer o upload, provavelmente a pasta está incorreta echo "Não foi possível enviar o arquivo, tente novamente"; } } ?>

Está apresentando os seguintes erros:

Notice: A session had already been started - ignoring session_start() in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 10
jesley
Strict Standards: Only variables should be passed by reference in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 56

Warning: move_uploaded_file(../../up_teste/uploads/$nome_final) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 97

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files (x86)\EasyPHP-5.3.8.1\tmp\php97D0.tmp' to '../../up_teste/uploads/$nome_final' in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 97
Não foi possível enviar o arquivo, tente novamente
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

19-12-2011 13:19

O primeiro erro é porque não pode ter código HTML antes do session_start()

O outro problema é no

$nome_final = $_FILES['arquivo']['name'];

Ele está sendo criado dentro de um if, então, quando você tentar usar aqui

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], '../../up_teste/uploads/$nome_final')) {

Ele não existe. Esse $nome_final tem que ser global.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

19-12-2011 13:37

$nome_final = $_FILES['arquivo']['name'];

}

$nm_final = $nome_final;

sleep(2);

// Depois verifica se é possível mover o arquivo para a pasta escolhida


if (move_uploaded_file($_FILES['arquivo']['tmp_name'], '../../up_teste/uploads/$nm_final'))

Fiz da forma correta?

----------------------------------------------------------

Apontou estes erros:

Strict Standards: Only variables should be passed by reference in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 52

Warning: move_uploaded_file(../../up_teste/uploads/$usuario/$nm_final) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 95

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Program Files (x86)\EasyPHP-5.3.8.1\tmp\phpD290.tmp' to '../../up_teste/uploads/$usuario/$nm_final' in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 95
Não foi possível enviar o arquivo, tente novamente
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

19-12-2011 13:49

Antes do if que cria o $nome_final, você tem que criar $nome_final vazio

$nome_final = "";

Dentro do if, você atribui o valor

$nome_final.= $_FILES['arquivo']['name'];

Ai você vai obter o valor, lembrando que segundo o script, $nome_final é uma pasta, ou seja, você está tentando enviar algo para uma pasta que tem o nome do arquivo.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

19-12-2011 14:03

Ok. Vou tentar resolver por partes...

Strict Standards: Only variables should be passed by reference in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 52

Qual o erro apontado pelo php... segue linha:


$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

19-12-2011 14:13

O uso das funções ficou errado. Deve ser assim como nesse exemplo

$var = "arq.ext"; $extensao = explode('.', strtolower($var)); echo end($extensao);

0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

19-12-2011 14:24


// Verificar se o tipo de arquivo é uma imagem if(!eregi(“^image\/(pjpeg|jpeg|png|gif|bmp)$”, $arquivo["type"])) { $erro[] = “Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo”; }

Este seria o modo correto para verificar o tipo de um arquivo?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

19-12-2011 14:33

Sim, pode ser usado.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 42
Sexo: Masculino

uso do mkdir

19-12-2011 14:47

Fiz assim:

declarei uma variavel $arquivo
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

e depois criei este if
if(!eregi(“^image\/(pjpeg|jpeg|png|gif|bmp)$”, $arquivo["type"]))
{
$erro[] = “Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo”;
}

agora está acusando apenas um erro:
Deprecated: Function eregi() is deprecated in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\up_teste\teste.php on line 56

mais o arquivo não é enviado!!!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17248
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

uso do mkdir

19-12-2011 14:55

O eregi não é mais usado. Tenta só com if, como mostrado nesse post

campo-imagem-obrigatorio_1_3148.html
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:

Quem está online

Usuários navegando neste fórum: Google [Bot]