Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Deejay Wagner

Upload de imagem com criação de pastas

Recommended Posts

Galera estou com um problema num site que estou montando

 

preciso fazer um upload de uma foto para uma pasta com o ID do album, sera que alguém pode me ajudar?

 

segue erros que estao aparecendo

 

( ! ) Notice: Undefined index: file_fotos in D:\wamp\www\djwagner\upload.php on line 76 Call Stack # Time Memory Function Location 1 0.0007 291232 {main}( ) ..\upload.php:0
( ! ) Warning: move_uploaded_file(fotos/1/IMG_20131026_170559.jpg): failed to open stream: No such file or directory in D:\wamp\www\djwagner\upload.php on line 85 Call Stack # Time Memory Function Location 1 0.0007 291232 {main}( ) ..\upload.php:0 2 0.0015 295488 move_uploaded_file ( ) ..\upload.php:85
( ! ) Warning: move_uploaded_file(): Unable to move 'D:\wamp\tmp\phpF675.tmp' to 'fotos/1/IMG_20131026_170559.jpg' in D:\wamp\www\djwagner\upload.php on line 85 Call Stack # Time Memory Function Location 1 0.0007 291232 {main}( ) ..\upload.php:0 2 0.0015 295488 move_uploaded_file ( ) ..\upload.php:85

 

 

Segue codigo da pagina:

 

if ((isset($_POST["MM_insert"])) 
&& ($_POST["MM_insert"] == "form2")) 
{
$arquivo = $_FILES["file_fotos"];
$arquivo_foto = $arquivo["name"];

  $insertSQL = sprintf("INSERT INTO tbfotos (foto_id, foto_categoria, file_fotos) VALUES (%s, %s, '$arquivo_foto')",
                       GetSQLValueString($_POST['foto_id'], "int"),
                       GetSQLValueString($_POST['foto_categoria'], "text"),
                       GetSQLValueString($_POST['file_fotos'], "text"));
  
  $id_album = $_POST['foto_categoria'];

set_time_limit(0);
$diretorio = "fotos/".$id_album."";
$id_arquivo = "file_fotos";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

  mysql_select_db($database_conexao, $conexao);
  $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo ainda continua apresentando erro

 

Notice: Undefined index: file_fotos in D:\wamp\www\djwagner\upload.php on line 76

 

ele grava no banco de dados mais nao faz o upload para pasta.

 

também não estou conseguindo criar uma sub pasta no upload com o id do álbum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele grava tudo certinho no banco de dados

somente nao cria o diretorio e faz o up pra ele

 

<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form2" id="form2">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para criar a pasta, tente assim:

 

$id_album = $_POST['foto_categoria'];
$diretorio = "fotos/".$id_album;
mkdir("fotos/" . $id_album, 0777);
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo estamos quase la... rs

Desculpa ai ficar te alugando

 

agora ele cria o DIR grava no BD

porem nao ta salvando a imagem na pasta..

 

if ((isset($_POST["MM_insert"])) 
&& ($_POST["MM_insert"] == "form2")) 
{
$arquivo = $_FILES["file_fotos"];
$arquivo_foto = $arquivo["name"];

  $insertSQL = sprintf("INSERT INTO tbfotos (foto_id, foto_categoria, file_fotos) VALUES (%s, %s, '$arquivo_foto')",
                       GetSQLValueString($_POST['foto_id'], "int"),
                       GetSQLValueString($_POST['foto_categoria'], "text"),
                       GetSQLValueString($_POST['file_fotos'], "text"));
  

set_time_limit(0);
$id_arquivo = "file_fotos";
$id_album = $_POST['foto_categoria'];
$diretorio = "fotos/".$id_album;
mkdir("fotos/" . $id_album, 0777);
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

  mysql_select_db($database_conexao, $conexao);
  $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());
}

 

Notice: Undefined index: file_fotos in D:\wamp\www\djwagner\upload.php on line 76



consegui fazer ele mover o arquivo.. so alterei a ondem do codigo

 

set_time_limit(0);
$id_arquivo = "file_fotos";
$id_album = $_POST['foto_categoria'];
mkdir("fotos/" . $id_album, 0777);
$diretorio = "fotos/".$id_album;
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja minha primeira resposta #2.

 

E coloque isso assim:

 

        set_time_limit(0);
        $id_arquivo = "file_fotos";
        $id_album = $_POST['foto_categoria'];
        mkdir("fotos/" . $id_album, 0777);
        $diretorio = "fotos/" . $id_album . "/";
        $nome_arquivo = $_FILES[$id_arquivo]["name"];
        $arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
        move_uploaded_file($arquivo_temporario, $diretorio . $nome_arquivo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei a opção da sua resposta porem ainda da a mesma coisa

 

Notice: Undefined index: name in D:\wamp\www\djwagner\upload.php on line 78

 

sera que tem como verificar se o DIR ja existe antes de executar o MKDIR esta dando um erro creio que seja isso

mesmo com os alertar agora esta tudo funcionando...

 

Warning: mkdir(): File exists in D:\wamp\www\djwagner\upload.php on line 84

 

set_time_limit(0);
$id_arquivo = "file_fotos";
$id_album = $_POST['foto_categoria'];
mkdir("fotos/" . $id_album, 0777);
$diretorio = "fotos/".$id_album;
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque assim:

 

set_time_limit(0);
$id_arquivo = "file_fotos";
$id_album = $_POST['foto_categoria'];
if (!file_exists("fotos/" . $id_album . "/")) {
    mkdir("fotos/" . $id_album, 0777);
}
$diretorio = "fotos/" . $id_album . "/";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, $diretorio . $nome_arquivo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesma coisa.. qndo coloco a validação ele nao aparece a MSG porem nao faz o upload nem grava no banco de dados

 

 

if ((isset($_POST["MM_insert"])) 
&& ($_POST["MM_insert"] == "form2")) 
{

if (!empty($_POST['file_fotos']))
{
$arquivo = $_FILES["file_fotos"];
$arquivo_foto = $arquivo["name"];

  $insertSQL = sprintf("INSERT INTO tbfotos (foto_id, foto_categoria, file_fotos) VALUES (%s, %s, '$arquivo_foto')",
                       GetSQLValueString($_POST['foto_id'], "int"),
                       GetSQLValueString($_POST['foto_categoria'], "text"),
                       GetSQLValueString($_FILES['name']['file_fotos'], "file"));
  

set_time_limit(0);
$id_arquivo = "file_fotos";
$id_album = $_POST['foto_categoria'];
if (!file_exists("fotos/" . $id_album . "/")) {
    mkdir("fotos/" . $id_album, 0777);
}
$diretorio = "fotos/".$id_album;
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");

  mysql_select_db($database_conexao, $conexao);
  $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais você colocou a validação no código inteiro, assim não vai entrar ai caso o campo file_fotos seja enviado. Retire o:

 

 

if (!empty($_POST['file_fotos']))

 

 

e coloque assim:

 

$file_fotos = (!empty($_POST['file_fotos'])) ? GetSQLValueString($_FILES['name']['file_fotos'], "file") : "";
$arquivo = $_FILES["file_fotos"];
$arquivo_foto = $arquivo["name"];
 
$insertSQL = sprintf("INSERT INTO tbfotos (foto_id, foto_categoria, file_fotos) VALUES (%s, %s, '$arquivo_foto')",
GetSQLValueString($_POST['foto_id'], "int"),
GetSQLValueString($_POST['foto_categoria'], "text"),
$file_fotos);

Compartilhar este post


Link para o post
Compartilhar em outros sites

show de bola cara.. deu certinho

sem querer te aludar sera que tem como incrementar mais?

 

(ja percebeu que nao manjo de programar.. rs)

 

queria deixar as fotos com 640x480 e renomear o arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.