Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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)
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)mude aki
If Lcase(Right(filename,3)) = "jpg" Or Lcase(Right(filename,3)) = "gif" then
coloke a extensaun k kiser..
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
pode me dar um exemplo como é que ficaria o codigo entao?
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");
}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><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?
dá um response.write no seu caminho para ver o k esta sendo passado
este code, esta em .net...
nao sei se percebi bem a sua pergunta,
eu tou tbalhando por localhost
cocloca o caminho da imagem dentro do <imag src=
tipo:
<img src="<%=sIMGPath%>" border="1" align="center">
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)exemplo
sIMGPath="..\images\11.jpg"
' onde a pasta é C:\Inetpub\wwwroot\images\11.jpg
<img src="<%=sIMGPath%>" border="1" align="center">
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?
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,3para exibir use o rs("foto")<%
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?
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">
swfupload: http://demo.swfuploa.../v220/index.htm
jquery upload: http://www.fyneworks.com/jquery/multiple-file-upload/#tab-Examples
Facilmente adaptaveis no ASP
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....
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...
<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%>
</div></td>
</tr>
</table>
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"%>
<!-- .campo_alerta { { { { { { --><%
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")
<%
Else
If LenB(value) > 200000 then
%>
<script language=javascript>
alert("Erro ao enviar a imagem, o tamanho do arquivo deve ser menor que 200Kb")
<%
Else
%>
<%
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
%>
<%
End if
Next
MyFile.Close
%>
<%
End If
Set objFS = Nothing
End if
Else
%>
<%
<% 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 IfEnd If
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
End Function
%>