Ir para conteúdo
Fórum Script Brasil
  • 0

Definir Valor Do Campo Input "file"


Guest - Pedro Paulo -

Pergunta

Guest - Pedro Paulo -

Oi pessoal !

Tenho um script de upload de imagens e estou tentando fazer com que ele capture as imagens de um determinado diretório da maquina. alguém saberia me dizer se tem com eu definir o valor do input type="file". Tentei colocar value="C:\pasta\imagen.jpg" só que não deu certo. Se alguém sober como fazer ou onde eu posso encontrar alguma referencia a respeito serei grato.

Atenciosamente !

Pedro Paulo

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0
Guest - Pedro Paulo -

Oi M@luco !

Estou tentando definir isso exatamente para o usuario não ter que procurar o diretorio, pois na maquina dele terá o diretório especificado. Por isso que eu estou tentar descobrir como definir o diretório automaticamente. Ai ele só vai ter que clicar no botão pra executar o script de upload. Se não tiver como definir o valor do input type="file" como eu faria para definir o valor da variavel "$arquivo".

Grato ! Atenciosamente !

Pedro Paulo

Link para o comentário
Compartilhar em outros sites

  • 0
Se não tiver como definir o valor do input type="file" como eu faria para definir o valor da variavel "$arquivo".

pegar o valor da variável $arquivo?seria isso?

se for é só dar um echo...

echo $arquivo_name;

agora quanto à pre-definir o diretório não sei como fazer, tenta dar uma perguntada na parte de html tb...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Pedro Paulo -

Oi M@luco !

Não seria pra pegar o valor da variavel e sim definir um valor pra ela. Tem assim:

$arquivo="c:\pasta\imagens.jpg" - só que tá dando erro. Como eu faria pra definir esse valor ?

grato !

Pedro Paulo

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Pedro Paulo -

Oi Chara !

$arquivo="c:\\pasta\\imagen.jpg" - Não funcionou, mas tambem não deu erro.

Não sei mais o que fazer ! Por favor ajudem....

Grato !

Pedro Paulo

Link para o comentário
Compartilhar em outros sites

  • 0

Então pp...

Segue abaixo o script todo:

<html>

<head>

<meta http-equiv="Content-Language" content="pt-br">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>Salvar imagens</title>

</head>

<CENTER><font face="Arial Black" size="5">FORMULÁRIO PARA ATUALIZAÇÃO DE IMAGENS</FONT></CENTER>

<body BACKGROUND=chapa3.jpg link=blue alink=red vlink=blue>

<br>

<br>

<br>

<?

if (!isset($arquivo)){

?>

<form method="POST" action="<?PHP_SELF?>" enctype="multipart/form-data">

<div align="center">

<center>

<table border="1">

<tr>

<td BGCOLOR=999999 align="center"><b><font face="Tahoma" size="3">Nome:</font></b></td>

<td BGCOLOR=999999 align="left"><input type="text" name="titulo" size="63"></td>

</tr>

<tr>

<td BGCOLOR=999999 align="right"><b><font face="Tahoma" size="3">Imagem:</font></b></td>

<td BGCOLOR=999999 align="left"><input type="file" name="arquivo" size="49"></td>

*/ O usuário não pode escolher. A pasta e o arquivo já tem que estar definidos(c:\pasta\imagen.jpg).

</tr>

<tr>

<td BGCOLOR=999999 align="center"><b><font face="Tahoma" size="3">Texto:</font></b></td>

<td BGCOLOR=999999 align="left"><textarea rows="5" name="texto"cols="48"></textarea></td>

</tr>

<tr>

<td BGCOLOR=999999 align="right" colspan="2">

<p align="center"><input type="submit" value="Gravar Imagem" name="B1">

<input type="reset" value="Limpar Campos" name="B2"></td>

</tr>

</table>

</center>

</div>

</form>

<?

} else {

if ($arquivo_size <> 0){

if (!copy($arquivo, $arquivo_name)){

echo "Não foi possivel copiar o arquivo $arquivo_name<BR>";

echo "Tente Novamente ...";

}

}

*/ Eliminei a linha do "type="file"" do FORM e aqui eu coloquei $arquivo="c:\pasta\imagen.jpg" - Mas não acontece nada, não dá erro não dá nada. Tambem tentei colocar assim: $arquivo="c:\\pasta\\imagen.jpg", mas também não funcionou.

if (!file_exists("materias.txt")){

$arq=fopen("materias.txt",'w');

fclose($arq);

}

$arq=file("materias.txt");

$arq[count($arq)]="$titulo:$texto:$arquivo_name:";

$grava=fopen("materias.txt",'w');

for($i=0;$i<count($arq);$i++){

$campos=split(":",$arq[$i]);

fputs($grava,"$campos[0]:$campos[1]:$campos[2]:\r\n");

}

fclose($grava);

echo "<center><FONT COLOR=#FF0000><b>Informações gravadas com sucesso!!!</b></FONT></center><br>";

}

?>

</body>

<center><A HREF=\1\materia.php><b><font face="Arial" size="2">Ver Imagens</font></b></A></center>

</html>

Não manjo quase nada de PHP por isso estou meio perdido para definir o valor e o posicionamente correto da variavel($arquivo) no script. Se alguém puder me ajudar serei grato.

Atenciosamente !

Pedro Paulo (Khufu)

Link para o comentário
Compartilhar em outros sites

  • 0

Puts ! eu sou burro demais.

Fiz como você falou; ele faz o registro mas não salva a imagen na pasta. Estou colocando a definição da variavel logo abaixo do primeiro "if", tá certo ? é ali mesmo que tem que colocar ?

<?

if (!isset($arquivo)){

$arquivo_name="C:\\pasta\\imagen.jpg"

?>

Depois tentei colocar antes do "else" :

<?

$arquivo_name="C:\\pasta\\imagen.jpg"

} else {

if ($arquivo_size <> 0){

if (!copy($arquivo, $arquivo_name)){

echo "Não foi possivel copiar o arquivo $arquivo_name<BR>";

echo "Tente Novamente ...";

}

}

Mas deu na mesma ele grava o registro mas não salva a imagen na pasta.

Tentei também colocar ao invés de $arquivo_name="C:\\pasta\\imagen.jpg" colocar $arquivo_size="C:\\pasta\\imagen.jpg". Mas também na funcinou. Depois tentei usar o função "_FILE" na definição da variavel($arquivo_name= _FILE("c:\\pasta\\imagen.jpg") mas ai da erro. Lembrando que se eu tiro o "input type="file" do FORM ai não acontece nada nem grava o registro. Tentei tambem definir a variavel como valor de um "input type="text"" mas tambem não acontece nada. Tem como eu eliminar o FORM e deixar apenas o script, ai quando o usuario acessar a pagina ela já executa o upload automaticamente. Ou descobrir o formato que o botão "Browse..." envia os dados da variavel ?

Grato pela atenção ! Atenciosamente !

Link para o comentário
Compartilhar em outros sites

  • 0

Então !

Agora como o toque do M@luco eu tentei fazer assim :

$arquivo="c:\\pasta";

$arquivo_name="imagen.jpg";

Só da um erro dizendo que o arquivo não se encontra no diretório. É pessoal acho que vou ter que desistir do projeto porque pelo visto esse esquema que eu estou querendo fazer não funciona.

Obrigado pela atenção de todos !

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Almir --

Galera, como diz aquele funk "Para Tudo Para Tudo!"...

Primeiro - Qualquer campo de um formulário você pode definir EXCETO o campo Input type=file. (porque será?) se não seria fácil demais roubar informações do pc q está acessando a pagina!

.. então.. impossível mesmo...

Segundo - Se você fizer $arquivo = "C:\dir\file.ext"; o PHP está no servidor, então ele procura este arquivo no servidor! e não... no na máquina do internauta...

Pra você acessar os arquivos do upload, vai usar a variavel global $_FILES.

então...

o site php.net sugere o seguinte:

<form enctype="multipart/form-data" action="_URL_" method="post">

<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

Send this file: <input name="userfile" type="file" />

<input type="submit" value="Send File" />

</form>

<?php

// Nas versões do PHP anteriores a 4.1.0, deve ser usado $HTTP_POST_FILES

// ao invés de $_FILES.

$uploaddir = '/var/www/uploads/';

$uploadfile = $uploaddir . $_FILES['userfile']['name'];

print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {

print "O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação:\n";

print_r($_FILES);

} else {

print "Possivel ataque de upload! Aqui esta alguma informação:\n";

print_r($_FILES);

}

print "</pre>";

?>

veja mais em :

http://br.php.net/manual/pt_BR/features.file-upload.php

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...