Ir para conteúdo

POWERED BY:

Arquivado

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

Web Developer

Exibir imagem do pc local na página.

Recommended Posts

Olá pessoal, fiz um sisteminha ajax com php, para que o usuário possa editar as opções de uma imagem antes de postá-la, o que isto faz:

1-Seleciona uma imagem no pc do usuário.

2-Exibe-a na tela com um texto de exemplo (texto apenas para visualizar a posição da imagem a esq. ou a direita).

3-Opção + e - para redimensionar instantaneamente a visualização da foto.

 

Feito isto em JS, ao clicar em enviar, o arquivo executa tipo um innerHTML para informar a posição da imagem e usa GD em php para redimensionar a imagem no tamanho escolhido pelo usuário e enviá-la ao servidor. Funciona perfeitamente, mas só na intranet. O php está certo pois já uso upload via php há anos, o problema e passar o valor das variáveis tipo $_FILE do JS para outro arquivo PHP, pegando via $_GET. Mas consegui passar o caminho completo do arquivo, o caso é:

 

Motivo do erro: O caminho da imagem durante a execução fica como "C:/qualquer_pasta_local/imagem.jpg", pois a intensão é não sobrecarregar o servidor e enviar a imagem somente após escolher suas dimensões. No servidor local funciona beleza, o problema é na internet. A imagem não aparece no quadro ajax que criei, fica um X (aquele de imagem não encontrada), quando clico com o botão direito nele e vejo as propriedades, aparece o caminho certinho da imagem também: "C:/qualquer_pasta_local/imagem.jpg", mas acredito que para mostrar uma imagem local através de uma página remota deve ter que usar um caminho ou comando diferente, tentei "file://c:/...", "file:///...", "file:\\\...", várias maneira e nada, todas funcionaram localmente, mas nenhuma na rede. Alguém me ajuda urgentemente, por favor!!!!

 

Para testar, basta usar a tag html <img> mesmo: <img src="C:/qualquer_pasta_local/imagem.jpg">, alterando o caminho.

 

Como exibir imagem do pc local na página da internet sem enviá-la?

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente Web Developer, fiz alguns testes aqui com meus scripts e parece que não está funcionando mais.talvez seja algum bug do browser, ou do sistema operacional ou talvez seja um bloqueio propositalvou pesquisar sobre isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, acredito ser proposital sim, acho que não tem solução para isto, testei com o Mozila, Netscape, IE 6, 7 ... nada. A Única solução até o momento é enviar a imagem para o servidor mesmo.Este bloqueio deve ser para evitar que um script malicioso altere arquivos no computador do usuário, mas no caso de imagens bem que podia funcionar, afinal, quem atacaria uma imgem? <_< É mais facil a imagem atacar o site com scripts internos, mas se abrir exceção para certos arquivos, a porta estará aberta para outras ações.Bom, obrigado pela atenção, aguardo novidades ansiosamente.Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... eu fiquei o sábado todo em cima de um problema como esse... Bom, se não é só comigo então é bloqueio mesmo... q pena... seria um recurso tão legal exibir a imagem antes de fazer upload...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página http://www.oficinadanet.com.br/index.php?a...show&id=224 tem a seguinte info:

 

"...

Para enviar arquivos, é necessário que o JavaScript leia todo o arquivo e envie na requisição HTTP, e isso até que é possível, mas a maioria dos browser negam o acesso do JavaScript aos arquivos por questões de segurança(veja isso: <a href='#' onClick="hwClick20144108131981(-1443610343);return false;" class="kLink1" onmouseover="hw20144108131981(event, this, '-1443610343');" onmouseout="hideMaybe(event, this);" oncontextmenu="return false;">http</a> ://www.mozilla.org/projects/security/components/jssec.html). Vejam nesse link (http://www.captain.at/ajax-file-upload.php) o melhor método de fazer o upload com AJAX que eu já vi, porém é necessário mexer nas configurações de segurança do Mozilla e é claro que não temos como pedir para que os usuários façam isso nos seus navegadores. :(

..."

 

Lá tem também o código referente à matéria, mas é a mesma coisa, o browser não permite acessar os arquivos. Vale a pena para sistemas internos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal, interessante issoeu ainda fico com pé atrás pra desenvolver usando Ajax. Pessoalmente não acho seguro, por se tratar de um emaranhado de scripts. O que temo é se terá suporte futuro ou findará como o tantos outros scripts.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, isso vai da opinião de cada um, não penso assim desde que tudo seja bem projetado, assim não ficaria um emaranhado, tem gente que consegue fazer uma bagunça só no php, hehehhe. Na verdade não faço AJAX propriamente dito, pois não fico misturando xml, mas uso muito php para executar funções em javascript, fica muito legal, o site fica mais dinâmico e interativo, além de facilitar muito a vida do usuário. Pro php, o javascript não passa de texto literal, string..., então, não interfere na segurança, uma vez que AJAX apenas emula situações que dão a impressão de precisar de um reenvio das informações. Então ele apenas manipula as informações html. É basicamente isso.Mudando um pouquinho de assunto, tem gente que chama HTML de linguagem de programação, correção:Linguagem de programação é aquela que necessita de uma lógica de programação, executa ações coordenadas por estruturas condicionais e matemáticas, ou seja, depende de situação, escolhas, permissões e resultados matemáticos. Definitivamente, html não é linguagem de programação, é apenas a construção visível para a World Wide Web, é a interface gráfica da programação.Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo WEb Developer,quando mencionei sobre segurança, me refiro se o script funcionará sempre ou ficará provocando erros sempre que atualizr um sistema operacional ou browser.essa questão do que é html, é realmente complicado explicar aos novatos que não é linguagem de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, o post's estão fugindo ao assunto principal definido no tema: Exibir imagem do pc local na página., Escolher tamanho da imagem e posição visualmente antes do upload.

 

Respeito e acho muito interessantes debates sobre prós e contras de tendências tecnologicas, porém, gostaria de pedir ao membros que esse debate seja realizado em outra área mais adequada com um post específico para o assunto.

 

Grato pela compreensão de todos.

 

Att, Vagner.Net

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, concordo com você hinom. Concordo com o vagner.net também. Voltando ao tema, como vimos é proibído acessar os arquivos do pc, só com o php mesmo, então precisei mudar meu código, a solução foi enviar uma imagem temporária ao seridor assim que o <input type="file" ...> é modificado, ou seja: onChange="this.form.submit();", assim o arquivo é enviado sem que o usuário "perceba" (na medida do possível, uma vez que o upload pode demorar). Como a página é um iframe, mesmo que demore um pouco será difícil perceber. Pronto, agora o problema é outro, como acessar/enviar de dentro do iframe

dados para uma função javascript que está na página principal? Mas isso já é assunto para outro debate. Vamos aos resultados atuais:

 

1-Código dentro do iframe.

<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css"><!--body {	background-image: url(../images/barra.gif);	}.files {	margin-left: -145px;	cursor: pointer;	cursor: hand;	float:left;	filter:alpha(opacity=0);	-moz-opacity:.0;	opacity:.0;}--></style></head><body style="margin:0"><table border="0" cellpadding="0" cellspacing="0" background="../images/image.gif">  <tr><td><form name="imagem_botao" id="imagem_botao" method="post" enctype="multipart/form-data"><input type="hidden" name="action" value="Enviar"><input type="file" accept="image/jpeg" id="imagem" name="imagem" onChange="this.form.submit();" class="files" title="Inserir imagem"></form></td></tr></table><?if($_POST['action']=='Enviar'){	include 'upload_tmp.php';	echo '<script>	var imagePath = "'.$novo_nome.'";	window.open("insere_imagem.php?imagem=" + imagePath, "InsereImagem", "scrollbars=yes, width=595, height=500");</script>';}?></body></html>

2-pedaço do código da pagina JS que contem o iframe (esta página é um editor richtext):

...document.writeln('<td><iframe class="rteImage" id="add_imagem" name="add_imagem" src="rte/imagem_botao.php" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" width="25" height="23"></iframe></td>');...
note que o iframe é pequeno, isto fará com que o campo "input file" apareça como um ícone de imagem (imagem.gif), e não com aquele "procurar", "browser" etc. Como fiz? Dêem uma olhadinha no css do iframe.

Pronto, todo este iframe não passa de um botão, imperceptível ao lado dos outros de negrito, italico, link, tabela, justificado... papapa...

 

Valeu galera!!! Vamos para outro assunto que é continuação dessa bagunça!!

http://forum.imasters.com.br/index.php?sho...mp;#entry815070

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.