enmelo 0 Denunciar post Postado Setembro 19, 2006 Olá Amigos! http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif Eu segui religiosamente passo à passo o tutorial publicado pelo Leandro Vieira aqui no Imasters, pesquisei insistentemente em outros tópicos e não achei solução para este problema: O upload é realizado "sem problemas", as informações saõ inseridas com sucesso no banco de dados, porém não consigo localizar a foto enviada após o upload em diretório algum! Tenho instalado no micro o IIS + PHP 5.1.2 + MYSQL 5.0 + PHPMyAdmin 2.8.0.2 e tudo funciona perfeitamente. Já concedi as devidas permissões de escrita na pasta raiz e verifiquei as permissõs de NTFS no Windows XP. Tudo Ok! Será que estou fazendo alguma "káka" Por favor me ajudem!!! Compartilhar este post Link para o post Compartilhar em outros sites
Fagner 1 Denunciar post Postado Setembro 19, 2006 Poste seu codigo aqui! Compartilhar este post Link para o post Compartilhar em outros sites
enmelo 0 Denunciar post Postado Setembro 20, 2006 Ok Fagner! (estou desconfiando que o erro é na linha 59 em vermelho) Segue: <?php require_once('Connections/Mysql.php'); ?> <?php function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $arquivo = $_FILES["foto"]; $arquivo_nome = $arquivo["name"]; $insertSQL = sprintf("INSERT INTO upload (titulo, texto, foto) VALUES (%s, %s, '$arquivo_nome')", GetSQLValueString($_POST["titulo"], "text"), GetSQLValueString($_POST["texto"], "text")); mysql_select_db($database_Mysql, $Mysql); $Result1 = mysql_query($insertSQL, $Mysql) or die(mysql_error()); $insertGoTo = "confirma2.htm"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); set_time_limit(0); $diretorio = "arquivos"; $id_arquivo = "foto"; $nome_arquivo = $_FILES[$id_arquivo]["name"]; $arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"]; move_uploaded_file($arquivo_temporario, "$localhost/site/upload/$nome_arquivo"); } ?> <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1"> <table align="center"> <tr valign="baseline"> <td nowrap align="right">Titulo:</td> <td><input type="text" name="titulo" value="" size="32"></td> </tr> <tr valign="baseline"> <td nowrap align="right">Texto:</td> <td><input type="text" name="texto" value="" size="32"></td> </tr> <tr valign="baseline"> <td nowrap align="right">Foto:</td> <td><input name="foto" type="file" size="32"></td> </tr> <tr valign="baseline"> <td nowrap align="right"> </td> <td><input type="submit" value="Insert record"></td> </tr> </table> <input type="hidden" name="MM_insert" value="form1"> </form> <p> </p> Compartilhar este post Link para o post Compartilhar em outros sites
enmelo 0 Denunciar post Postado Setembro 20, 2006 No banco de dados PHPMyAdmin as informações são inseridas com sucesso: http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Aguardo ansioso!!! Valeu Fera!!! Compartilhar este post Link para o post Compartilhar em outros sites
alendre 0 Denunciar post Postado Setembro 20, 2006 E aí enmelo... beleza... Acho q vai ajudar, não testei... É o seu código só alterei algumas coisas, estão comentadas... Ok... Cole e teste, qquer coisa post... beleza... T+ <?php require_once('Connections/Mysql.php'); ?><?phpfunction GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue;}$editFormAction = $_SERVER['PHP_SELF'];if (isset($_SERVER['QUERY_STRING'])){ $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);}if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")){ $arquivo = $_FILES["foto"]; $arquivo_nome = $_FILES["foto"]["name"]; set_time_limit(0); // Pegunta... // Esta pasta já existe (ARQUIVOS) ...??? $diretorio = "arquivos"; $id_arquivo = "foto"; $nome_arquivo = $_FILES[$id_arquivo]["name"]; $arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"]; // Move a foto para a pasta... $Vai = $diretorio . $nome_arquivo; #################################################################################### // Erro: no endereço para onde a imagem será movida // Original... // move_uploaded_file($arquivo_temporario, "$localhost/site/upload/$nome_arquivo"); // Modificado... move_uploaded_file($arquivo_temporario, $Vai); // Aqui você grava o Caminho da Imagem no BD... Ok... // Original... // $insertSQL = sprintf("INSERT INTO upload (titulo, texto, foto) VALUES (%s, %s, '$arquivo_nome')", // Modificado... $insertSQL = sprintf("INSERT INTO upload (titulo, texto, foto) VALUES (%s, %s, ". $Vai .")", GetSQLValueString($_POST["titulo"], "text"), GetSQLValueString($_POST["texto"], "text")); mysql_select_db($database_Mysql, $Mysql); $Result1 = mysql_query($insertSQL, $Mysql) or die(mysql_error()); $insertGoTo = "confirma2.htm"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo));}?> Compartilhar este post Link para o post Compartilhar em outros sites
enmelo 0 Denunciar post Postado Setembro 20, 2006 ...bom Alexandre, obrigado pela ajuda cara! É o seguinte, copiei e colei o código que você mandou e ele dá o seguinte erro: Warning: move_uploaded_file(arquivosusuarios.txt) [function.move-uploaded-file]: failed to open stream: Permission denied in c:\Inetpub\wwwroot\Site\upload.php on line 55 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\PHP\uploadtemp\phpD.tmp' to 'arquivosusuarios.txt' in c:\Inetpub\wwwroot\Site\upload.php on line 55 Unknown column 'arquivosusuarios.txt' in 'field list' Derepente não seria o caso de dar aquela permissão CHMOD 777 ? Valeu Fera!!! Compartilhar este post Link para o post Compartilhar em outros sites
enmelo 0 Denunciar post Postado Setembro 25, 2006 ESTOU INDIGNADO!!! Com respeito às pessoas que contribuem com respostas para as dúvidas de colegas iniciantes, como eu, faço aqui um descontente comentário sobre o fórum: A impressão que tenho deste fórum é que para se conseguir sanar uma dúvida você tem que ser tão bom ou melhor que os caras que te respondem. Uma coisa desagradável que acontece aqui no fórum do Imaster é que tem ALGUNS caras que são realmente muito bons mas que não são nada humildes, logo a razão do fórum existir, que é COMPARTILHAR CONHECIMENTO cai por terra. Se aqui tem um tópico com o título "por favor me ajudem", ninguém responde. Se tem um como "Dúvida em SQL" , se for mulher com um nome tipo "Sara Sarada" então recebe 756 respostas, mas se for o mesmo tópico com um nome tipo "Ricardo desenvolvedor" recebe no máximo três respostas sendo duas críticas. Outra coisa inconcebível é que aqui não há liberdade de expressão. Eu, por exemplo, certamente serei banido por expressar essa opinião ou este post será deletado. Isso é um modelo claro de AUTORITARISMO EXPLÍCITO NUMA INTERNET DEMOCRATIZADA!!! Um fórum como esse logicamante tem que ser moderado, mas não militarizado!!! MODERADORES, VAMOS REVER ESSES CONCEITOS!!! . Compartilhar este post Link para o post Compartilhar em outros sites
enmelo 0 Denunciar post Postado Setembro 25, 2006 Olá tmferreira, Obrigado por se posicionar tão breve (o que não acontece com os tópicos de ajuda). Desculpe desapontá-lo, mas a minha crítica não foi direcionada a você nem ao membros do fórum e sim ao modelo implementado pelo Imaster. Sendo você moderador entendo que tenha ficado chateado. Não vamos abrir aqui uma linha de discussão banal, até porque o fórum não é para isso! Reconheço que não tenho ciência dos termos de uso do fórum e não conheço todos os membros participantes. Quanto à ser observador eu ainda não faço idéia do que seja CHMOD 777. Sem mais. Elton Melo Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Setembro 26, 2006 Pois então, não sei o pq da revolta, mas se foi por causa da edição do titulo do tópico, quero dizer que isso consta claramente nas regras do fórum, que, se não me engano, são mostradas inclusive na hora do cadastro do fórum e que você DEVE ler antes de apertar o botão "Eu concordo". Pode ter certeza que não fazemos isso pra encher o saco dos membros, tudo tem um motivo.Você acha que se alguém tivesse a mesma dúvida e fosse fazer uma pesquisa no fórum pra tentar sana-la, ele iria conseguir encontrar o teu tópico estando com o titulo anterior? Pense nisso.Em relação à dúvida, nessa parte do código você usa uma variável: move_uploaded_file($arquivo_temporario, "$localhost/site/upload/$nome_arquivo");...$localhost que não é definida em local algum do script, acredito que você queira fazer:move_uploaded_file($arquivo_temporario, "http://localhost/site/upload/$nome_arquivo"); http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites