Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera Boa Tarde,
Tenho uma aplicação onde preciso mandar um unico arquivo para uma ou mais pastas e gravar em banco mysql, segue o código:
$pasta = "../_lib/file/doc"
for($i=0; $i<count($_POST['destinatario']); $i++) {
$caminhoarquivo = $_POST['destinatario'][$i]."/".$descricao;
$sql = mysql_query("INSERT INTO
tbl_arquivo
VALUES
(NULL,'$categoria', '$lido', '$ip', now(),'$descricao', '".$_POST['destinatario'][$i]."', '$remetente' , '$competencia','$data_referencia','$usuario', '$caminhoarquivo','$comentarios')");
move_uploaded_file($descricao_tmp, $pasta."/".$_POST['destinatario'][$i]."/".$descricao);
}
Quanto a inserir no banco está tranquilo, funcionando perfeitamente, porém quando faço o move_uploaded_file, só é feito o upload para uma pasta.
Alguém tem alguma idéia de como resolver isso?
Leandro Auler
Vinicius,
Uma função para passar o valor da $pasta? Como assim não entendi?
Leandro
function uploadImg($pasta = 'imagens/upload'){ //define uma pasta padrão
//código para pegar imagem etc..
move_uploaded_file($descricao_tmp, $pasta."/".$_POST['destinatario'][$i]."/".$descricao);
}
na hora de usar faz assim, inclui a página que tem essa função
e usa
for($i=0; $i<count($_POST['destinatario']); $i++) {
$caminhoarquivo = $_POST['destinatario'][$i]."/".$descricao;
$sql = mysql_query("INSERT INTO
tbl_arquivo
VALUES
(NULL,'$categoria', '$lido', '$ip', now(),'$descricao', '".$_POST['destinatario'][$i]."', '$remetente' , '$competencia','$data_referencia','$usuario', '$caminhoarquivo','$comentarios')");
uploadImg();
}
ai caso você queira mudar o caminho é só colocar
for($i=0; $i<count($_POST['destinatario']); $i++) {
$caminhoarquivo = $_POST['destinatario'][$i]."/".$descricao;
$sql = mysql_query("INSERT INTO
tbl_arquivo
VALUES
(NULL,'$categoria', '$lido', '$ip', now(),'$descricao', '".$_POST['destinatario'][$i]."', '$remetente' , '$competencia','$data_referencia','$usuario', '$caminhoarquivo','$comentarios')");
uploadImg('imagens/uploads/pasta-teste');
}Vinicius,
Não funcionou....
Leandro
foi um exemplo amigo, procure como trabalhar com funções no PHP.
e se puder estudar OO será um grande passo para você.
Vinicius,
Entendi que foi um exemplo, porém o upload funciona normalmente para apenas uma pasta, seja com a função que você postou ou com o código que eu postei. Esse upload não é padrão um arquivo para uma pastas e sim um arquivo para uma ou mais pastas. Quando é vários arquivos para uma pasta é tranquilo.... não estou entendo porque o array não funciona, só funciona para inserir no banco, mas não para inserir os arquivos.
Leandro
Galera,
Consegui resolver da seguinte maneira:
$destinatario = $_POST['destinatario'];
$descricao = $_FILES['arquivo']['name'];
$descricao_tmp = $_FILES['arquivo']['tmp_name'];
$pasta = "arquivos";
move_uploaded_file($descricao_tmp, $pasta."/".$descricao);
for($i=0; $i<count($_POST['destinatario']); $i++){
if (file_exists($pasta."/".$descricao)) {
copy($pasta."/".$descricao,$pasta."/".$_POST['destinatario'][$i]."/".$descricao);
} else {
print "O arquivo $descricao não existe";
}
Valeu,
Leandro Auler
essa variável
$pasta
diz onde o seu arquivo será movido, basta criar uma função para passar o valor da pasta.