Ir para conteúdo

POWERED BY:

Arquivado

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

Amadeufm

allow

Recommended Posts

ola pessoal,

 

eu tou a criar uma cena para fazer upload de fotos, mas nao sei como faço para especificar o tipo de ficheiro, ou seja, allo="text/*" se fosse pra ficheiros word, certo???

 

como é que eu faço para especificar o tipo de ficheiro para foto (jpf, gif)

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos de como fazer isso, especificando extensoes para dar o upload, olha este exemplo...

 

Upload aceitando apenas imagens Gif e Jpg

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<HTML>
<HEAD>
<TITLE>Upload</TITLE>
<style type="text/css">
<!--
.campo_alerta
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
border: 1px solid black;
background-color: #cccccc;
}
.texto_pagina
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: black;
}

.tabela_formulario
{
width: 200;
background-color: white;
}

.titulo_campos
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: black;
background-color: white;
}

.campos_formulario
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: whitesmoke;
border: 1px solid black;
}

.botao_enviar
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: black;
background-color: gainsboro;
}
-->
</style>
<script language=javascript>
function envia_imagem(imagem) {
self.opener.recebe_imagem('<%=Request("campo")%>', imagem);
window.close();
}
</script>
</HEAD>
<BODY class="texto_pagina">

<%
Sub BuildUploadRequest(RequestBin)
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
        Dim UploadControl
        Set UploadControl = CreateObject("Scripting.Dictionary")
        Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
        Pos = InstrB(Pos,RequestBin,getByteString("name="))
        PosBeg = Pos+6
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
        Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
        PosBound = InstrB(PosEnd,RequestBin,boundary)
        If  PosFile<>0 AND (PosFile<PosBound) Then
            PosBeg = PosFile + 10
            PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
            FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            UploadControl.Add "FileName", FileName
            Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
            PosBeg = Pos+14
            PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
            ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            UploadControl.Add "ContentType",ContentType
            PosBeg = PosEnd+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
        Else
            Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
            PosBeg = Pos+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        End If
    UploadControl.Add "Value" , Value    
    UploadRequest.Add name, UploadControl    
    BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    Loop

End Sub

Function getByteString(StringStr)
For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
Next
End Function

Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1))) 
Next
End Function

pasta_imagens = "imagens" & Request("pasta")

pasta = Server.URLEncode(Request("pasta"))
campo = Server.URLEncode(Request("campo"))

Set objFS = Server.CreateObject("Scripting.FileSystemObject")
If Not objFS.FolderExists(Server.MapPath(pasta_imagens)) Then
  objFS.CreateFolder(Server.MapPath(pasta_imagens))
End if

If Request("enviar") <> "" Then
  Set objFS = Nothing
  byteCount = Request.TotalBytes
  RequestBin = Request.BinaryRead(byteCount)
  Dim UploadRequest
  Set UploadRequest = CreateObject("Scripting.Dictionary")
  BuildUploadRequest  RequestBin
  contentType = UploadRequest.Item("blob").Item("ContentType")
  filepathname = UploadRequest.Item("blob").Item("FileName")
  filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))

  value = UploadRequest.Item("blob").Item("Value")
  If Lcase(Right(filename,3)) = "jpg" Or Lcase(Right(filename,3)) = "gif" then
    Set objFS = Server.CreateObject("Scripting.FileSystemObject")
'response.write(pasta_imagens & "\" & filename)
'response.end()
    
    If objFS.FileExists( Server.mappath(pasta_imagens & "\" & filename)) Then
%>

<script language=javascript>
alert("Erro ao enviar imagem, o arquivo '<%=filename%>' já existe na pasta '<%=pasta_imagens%>' do seu site")
enviar.disabled = false;
</script>

<%

    Else
      If LenB(value) > 200000 then

%>

<script language=javascript>
alert("Erro ao enviar a imagem, o tamanho do arquivo deve ser menor que 200Kb")
enviar.disabled = false;
</script>

<%
      Else
%>
<strong>Aguarde o envio da imagem...</strong><br>

<input name="progress" value="0% enviado" style="border:none">
<table width="100" border="0" cellspacing="0" cellpadding="0" style="border: 1px inset">
  <tr>
    <td><input name="barra" style="border:none; background-color: orangered; height: 10; width:1" readonly=""></td>
    <td></td>
  </tr>
</table>

<%
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
      Set MyFile = ScriptObject.CreateTextFile( Server.mappath(pasta_imagens & "\" & filename))
      progress = 0
      n = 0
      For i = 1 to LenB(value)
        MyFile.Write chr(AscB(MidB(value,i,1)))
        progress = Fix((i * 100) / LenB(value))
        If n <> progress then
          n = progress
%>

<script language=javascript>progress.value = "<%=n%>% enviado"</script>
<script language=javascript>barra.style.width = "<%=n%>"</script>

<%
        End if
      Next
      MyFile.Close
%>
<script language=javascript>
envia_imagem('<%=pasta_imagens & "/" & filename%>');
</script>

<%

    End If
    Set objFS = Nothing
  End if

Else
%>

<script language=javascript>
alert("Erro ao enviar a imagem, lembre-se que ela deve possuir extensão JPG ou GIF");
enviar.disabled = false;
</script>

<%
End If
End If
%>

<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>?campo=<%=campo%>&pasta=<%=pasta%>&enviar=sim" onSubmit="enviar.disabled=true">
Enviar uma nova imagem<BR>
<INPUT type="file" name="blob" class="campos_formulario" style="width: 100%"><BR>
<INPUT type="submit" name="enviar" value="Enviar" class="botao_enviar"><br>
<i>(A imagem deve ter nó máximo 200Kb)</i>
</FORM>
Selecionar uma imagem enviada anteriormente<BR>
<DIV class="titulo_campos" style="width:100%; height:175px; visibility: visible; overflow: auto; border:1px solid">
<%
lista_imagens pasta_imagens, "gif,jpg"
Function lista_imagens( strFolder, tipo )
  If Trim( Request.QueryString("folder") ) <> "" Then
    strFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & Request.QueryString("folder")
  End If

  Dim Folder, File
  Dim ObjFS, objRootFolder
  Set ObjFS = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = ObjFS.GetFolder(Server.MapPath(strFolder))
  For Each File in objFolder.files
    tipo = Replace(tipo, ",", "")
    For i = 1 to len(tipo) step 3
      If Right(File, 3) = Mid(tipo, i, 3) Then
        Response.Write "  <a href=""java script: envia_imagem('" & StrFolder& "/" & File.Name & "')"" class=""texto_pagina"">" & File.Name & "</a><BR>" & vbcrlf
      End If
    Next
  Next
  
  Response.Write "</td></tr></table>" & vbcrlf
  
  Set objFolder = Nothing
  Set Folder = Nothing
End Function
%>
</DIV>
</BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha eu tou usando este código

<td><h2>Foto:</h2></td>
        <td> <input type="file" name="r9" allow="text/*" maxlength="50" style="background:beige;color:Blue" /></td>
		</table><p>
não e sabe dizer que que é que eu tenho de meter aqui
allow="text/*"
, é este o meu problema, é que metendo desta maneirana base de dados aparece undefined (indefinido)

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude aki

 

If Lcase(Right(filename,3)) = "jpg" Or Lcase(Right(filename,3)) = "gif" then

 

coloke a extensaun k kiser..

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria com swfupload ou com jquery que dá pra filtrar extensões e limites de kb na propria caixa em que o usuario seleciona os arquivos. depois faria o que o xanbursum indicou pra evitar dos engraçadinhos burlarem o javascript e gravar coisa que não deve

Compartilhar este post


Link para o post
Compartilhar em outros sites

já consegui inserir o ficheiro da foto tal como o xanburzum diss...

agora encontro me com outo problema que é e mostrar uma tabela de registo. eu consigo mostrar tudo menos a foto que anteriormente inseri, apenas me aparece o caminho do ficheiro e nao a foto.

o codigo que estou usando é :

unction edProduto(){
try{
myRecordSet = myConnection.Execute("select id,nome,email,localidade,sexo,nascimento,profissao,foto from individuo");
}
catch(err)
{
Response.Write("Errar é humano: mais humano ainda é atribuir o erro aos outros")
}

var nomeRec = myRecordSet("id");

%>
<center><table border="1" cellpadding="0">
<td><h4>id</h4></td><td><h4>nome</h4></td><td><h4>email</h4></td><td><h4>localidade</h4></td><td><h4>sexo</h4></td><td><h4>nascimento</h4></td><td><h4>profissao</h4></td><td><h4>foto</h4></td></tr>
<%
<!-while(!myRecordSet.eof){ %>
<tr> <td><A HREF="editar.asp?produtoid=<%=myRecordSet("id")%>"><%=myRecordSet("id")%></a> </td><%
  for(Index=1; Index <  (myRecordSet.fields.count); Index++) {
    %><td><h4> <%= myRecordSet(Index) %></h4> </td>
	<%
  }
  myRecordSet.MoveNext()
  %>
  </tr><%
}
myRecordSet.Close();
myConnection.Close();
%>

</table>

 

a minha pergunta é como é que faço pra passar a imagem em vez de aparecer o caminho do ficheiro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write no seu caminho para ver o k esta sendo passado

este code, esta em .net...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cocloca o caminho da imagem dentro do <imag src=

 

tipo:

 

<img src="<%=sIMGPath%>" border="1" align="center">

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloco onde, desculpe lá a minha ignorancia.

 

porque o que me esta acontecer é que tal e qual como ta em cima o odigo descrito ela passa o caminho da foto, ou seja, o nome que ta na base de dados.

td><h4>id</h4></td><td><h4>nome</h4></td><td><h4>email</h4></td><td><h4>localidade</h4></td><td><h4>sexo</h4></td><td><h4>nascimento</h4></td><td><h4>profissao</h4></td><td><h4>foto</h4><
ao por o codigo k me disse aqui

td><h4>id</h4></td><td><h4>nome</h4></td><td><h4>email</h4></td><td><h4>localidade</h4></td><td><h4>sexo</h4></td><td><h4>nascimento</h4></td><td><h4>profissao</h4></td><td><h4>img src="<%=sIMGPath%>" ></h4><
aparece igual, pois penso que tb não é aqui que devo por o codigo, mas tb n sei como fazer para passar a foto em vez do caminho (C:\Inetpub\wwwroot\\xpto.jpg)

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo

 

sIMGPath="..\images\11.jpg"
' onde a pasta é C:\Inetpub\wwwroot\images\11.jpg
<img src="<%=sIMGPath%>" border="1" align="center">

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja percebi a sua ideia... eu é que me estava a explicar mal

eu quero que apareca a foto quando fasso

"select id,nome,email,localidade,sexo,nascimento,profissao,foto from individuo");
, é aqui ke devo dar lhe o caminho pra ele me inserir a foto certo?

como é k eu faço para executar a query de maneira a mandar me a foto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

perai, naun entendi, você quer atraves do Select, fazer a consulta e exibir os dados, juntamente com a foto...

pra isso você cria a conexao, cria o recordset executa a SQL, exemplo:

 

<!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="select id,nome,email,localidade,sexo,nascimento,profissao,foto from individuo"
  rs.open SQL,conexao,1,3
para exibir use o

rs("foto")

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%

function edProduto(){

try{

myRecordSet = myConnection.Execute("select id,nome,email,localidade,sexo,nascimento,profissao,foto from individuo");

}

catch(err)

{

Response.Write("Errar é humano: mais humano ainda é atribuir o erro aos outros")

}

 

var nomeRec = myRecordSet("id");

Com este codigo nao me aparece a imagem, apenas o caminho na minha tabela, que alteraçoes é k tenho de fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois de você recuperar o recordset atraves da SQL, você pode colocar assim que ele ira exibir a imagem

 

supondo k no seu bd o caminho esteja assim...

\images\11.jpg

 

<img src="<%=rs("foto")%>" border="1" align="center">

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou o k o nosso amigo jonathan disse, os componentes swfupload e upload atraves de jquery , é um bom exemplo, mas naun entendo como você naun esta conseguindo exibir a foto....

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem eu tou a perceber como é que não consigo mostrar uma foto...

 

dê me um exemplo de código de como é que voce com uma tabela mostra lá uma foto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<img src="<%=rstSearch("foto")%>" alt="Imagem não disponivel">

em um code assim, com esta string sql

 

strDBPath = Server.MapPath("db/contato.mdb")
        
Const adUseClient = 3
	
	Set cnnSearch = Server.CreateObject("ADODB.Connection")
	
cnnSearch.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"
cnnSearch.CursorLocation = adUseClient

strSQL = "SELECT nome, telefone, email, foto " _
		& "FROM contato " _
		& "WHERE telefone LIKE '%" & TiraAcento(Replace(strSearch, "'", "''")) & "%' " _
		& "OR email LIKE '%" & TiraAcento(Replace(strSearch, "'", "''")) & "%' " _
		& "ORDER BY nome;"

	Set rstSearch = cnnSearch.Execute(strSQL)
intContador = rstSearch.RecordCount
	
	%>
            </p></td>
        </tr>
      </table>
      <p align="center"><br>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="1">( Foram encontradas <b><%=intContador%></b> 
      ocorrências )</font></p>
      <div align="center"> 
        <table width="500" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF">
<tr> 
            <th width="107" bgcolor="#0000CE"><strong>
            <font face="Tahoma" size="2" color="#FFFFE7"><</font></strong><FONT color=#FFFFE7 face=Tahoma size=2><STRONG>Nome></STRONG></FONT></th>
            <th width="80" bgcolor="#0000CE"><strong>
            <font face="Tahoma" size="2" color="#FFFFE7"><</font></strong><FONT color=#FFFFE7 face=Tahoma size=2><STRONG> Email></STRONG></FONT></th>
            <th width="114" bgcolor="#0000CE"><strong>
            <font face="Tahoma" size="2" color="#FFFFE7"><</font></strong><FONT color=#FFFFE7 face=Tahoma size=2><STRONG> 
            Fone></STRONG></FONT></th>
            <th width="162" bgcolor="#0000CE"><strong>
            <font face="Tahoma" size="2" color="#FFFFE7"><</font></strong><FONT color=#FFFFE7 face=Tahoma size=2><STRONG>Foto></STRONG></FONT></th>
          </tr>
          <%
	Do While Not rstSearch.EOF
		%>
          <tr> 
            <td bgcolor="#FFFFE6"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("Nome").Value %></font></td>
            <td bgcolor="#FFFFE6">
              <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("email").Value %></font></div></td>
            <td bgcolor="#FFFFE6">
              <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><%= rstSearch.Fields("telefone").Value %></font></div></td>
            <td bgcolor="#FFFFE6">
              <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><img src="<%=rstSearch("foto")%>" alt="Imagem não disponível"></font></div></td>
          </tr>
          <%

		rstSearch.MoveNext
	Loop
	%>
        </table>
        <font size="1" face="Verdana, Arial, Helvetica, sans-serif"><br>
         Sua busca foi processada em 
        <%response.write FormatNumber( Timer - inicio, 2 )%>
        segundos.</font><br>
        <%
	
	rstSearch.Close
	Set rstSearch = Nothing
	cnnSearch.Close
	Set cnnSearch = Nothing
End If

%>
      </div></td>
  </tr>
</table>

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.