Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um formulário de Upload e preciso salvar o "valor" gerado e exibido através do "echo" :
echo "<img src=\"" . $destino . "\" />";
Como faço para salvar no campo "**novonome**" da tabela?>
6 horas atrás, marsolim disse:
não entendi fera. tu já não salva outros dados na tabela? é só fazer o mesmo...
$novo_valor = "<img src=\"" . $destino . "\" />";
e aí bota a var **$novo_valor** no lugar do campo na sql.
Tentei utilizar, mas não funcionouPoderia ser mais objetivo
e posta o código que tu esta querendo fazer ou seja poste mais sobre o teu código
>
9 horas atrás, Jack Oliveira disse:
Poderia ser mais objetivo
e posta o código que tu esta querendo fazer ou seja poste mais sobre o teu código
O que eu estou fazendo é um formulário de Upload onde ele primeiro "renomeia o arquivo que esta sendo enviado para não haver duplicidade" e então salve alguns dados do formulário em um banco de dados mysql, juntamente com o nome do arquivo que foi gerado para que saiba a qual se refere.
>
17 horas atrás, Jack Oliveira disse:
Poderia ser mais objetivo
e posta o código que tu esta querendo fazer ou seja poste mais sobre o teu código
<?php
include 'conecta_mysql.inc';
if(isset($_FILES['arquivo']['name']) && $_FILES["arquivo"]["error"] == 0)
{
echo "<center>Você enviou o arquivo: <strong>" . $_FILES['arquivo']['name'] . "</strong><br /></center>";
echo "<center>Seu tamanho é: <strong>" . $_FILES['arquivo']['size'] . "</strong> Bytes<br /><br /></center>";
$arquivo_tmp = $_FILES['arquivo']['tmp_name'];
$nome = $_FILES['arquivo']['name'];
$extensao = strrchr($nome, '.');
$extensao = strtolower($extensao);
if(strstr('.jpg;.jpeg;.gif;.png', $extensao))
{
$novoNome = md5(microtime()) . '.' . $extensao;
$destino = 'imagens/' . $novoNome;
if( @move_uploaded_file( $arquivo_tmp, $destino ))
{
echo "<br>";
echo "<img src=\"" . $destino . "\" />";
echo "<br>";
}
else
echo "Erro ao salvar o arquivo. Aparentemente você não tem permissão de escrita.<br />";
}
else
echo "Você poderá enviar apenas arquivos \"*.jpg;*.jpeg;*.gif;*.png\"<br />";
}
else
{
echo "<center><h1>Você não enviou nenhum arquivo!</h1></center>";
echo "<center><br><h3><a href='javascript:window.history.go(-1)'>Clique aqui para volta.</a></h3></center>";
}
$codphoto = $_POST['codphoto'];
$nome = $_POST['nome'];
$datafotografia = $_POST['datafotografia'];
$photography = $_POST['novoNome'];
$sql = "INSERT INTO photograph VALUES";
$sql .= "( '$codphoto', '$nome', '$datafotografia', '$photography' )";
if ($conexao->query($sql) === TRUE) {
echo "<center> <h2> Obrigado !! Envio realizado com sucesso !! </h2></center>";
echo "<center><br><h3><a href='LINK_SITE'>ENVIAR OUTRA FOTOGRAFIA</a></h3></center>"; echo "Erro: " . $sql . "<br>" . $conexao->error;
}
$conexao->close();
O código acima, consigo salvar os dados da tabela, porém não consigo salvar o nome do arquivo.
A tabela, segue abaixo:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
CREATE TABLE `photograph` (
`codphoto` int(11) NOT NULL,
`nome` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`datafotografia` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`photography` varchar(255) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `photograph`
ADD PRIMARY KEY (`codphoto`);
ALTER TABLE `photograph`
MODIFY `codphoto` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;ja tentou printar os dados na tela pra ver se tá recebendo ele certinho no post? duas obervações. tu vai deixar receber os dados sem tratar eles com algo como real_escape_string pra ajudar a evitar sql injection? outra que o "@" evita mensagem de erro e assim fica sem saber que erro que deu porque não aparece ele. pode ser que se tirar ele do @move_uploaded_file o próprio php te fala o erro.
>
1 hora atrás, marsolim disse:
ja tentou printar os dados na tela pra ver se tá recebendo ele certinho no post? duas obervações. tu vai deixar receber os dados sem tratar eles com algo como real_escape_string pra ajudar a evitar sql injection? outra que o "@" evita mensagem de erro e assim fica sem saber que erro que deu porque não aparece ele. pode ser que se tirar ele do @move_uploaded_file o próprio php te fala o erro.
Sei que existe um comando que faz isso... só não me recordo
Olá Alberto Nascimento tudo bem ..
Tente fazer isso aqui
como teste e se der certo adaptar ao teu código
gravar.php
<?php
// conectar ao banco de dados
$conn = mysqli_connect('localhost', 'root', '', 'banco_de_dados');
// Carrega arquivos
if (isset($_POST['Adicionar'])) { // se clicar no botão Salvar no formulário
//nome do arquivo carregado
$filename = $_FILES['arquivo']['name'];
// destino do arquivo no servidor
$destination = '../arquivos/' . $filename;
// Obtenha a extensão do arquivo
$extension = pathinfo($filename, PATHINFO_EXTENSION);
// O arquivo físico em um diretório de uploads temporários no servidor
$file = $_FILES['arquivo']['tmp_name'];
$size = $_FILES['arquivo']['size'];
if (!in_array($extension, ['jpg', 'jpeg', 'gif', 'png'])) {
echo "Sua extensão de arquivo deve ser .jpg .jpeg .gif .png";
} elseif ($_FILES['arquivo']['size'] > 1000000) { // o arquivo não deve ser maior que 1Megabyte
echo "Arquivo muito grande!";
} else {
// mova o arquivo carregado (temporário) para o destino especificado
if (move_uploaded_file($file, $destination)) {
$sql = "INSERT INTO files (nome, size, downloads) VALUES ('$filename', $size, 0)";
if (mysqli_query($conn, $sql)) {
echo "Arquivo enviado com sucesso";
}
} else {
echo "Falha ao fazer upload do arquivo.";
}
}
}
Na dúvida
de uma olhada no poste de [João Oliveira](https://zerobugs.com.br/ver-post/upload-de-arquivos-ou-imagens-usando-php-e-mysql-58/)
não entendi fera. tu já não salva outros dados na tabela? é só fazer o mesmo...