Ir para conteúdo

POWERED BY:

Arquivado

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

ennes

Erro de upload

Recommended Posts

Bom dia pessoal, como estou começando a programar agora em asp estou com essa dúvida.

Estou fazendo um upload de uma img mas quando a imagem vai para minha pasta ela não abre. Ex. a imagem possui 8,56 KB quando faço o upload ela vai para pasta com 60 bytes. Qual será o problema?

 

Aqui está o 1º código

cad_destaque.asp

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!-- #include file = "upload_funcoes.asp" -->
<head>
<link href="style2.css" rel="stylesheet" type="text/css" />
<title>Teste</title>
</head>

<body>
<table width="720" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td colspan="2"><!-- #include file="topo.asp" --></td>
  </tr>
  <tr>
    <td width="166" valign="top"><!-- #include file="menu.asp" --></td>
    <td width="554"><table width="554" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form name="form1" method="post" action="upload_form2.asp" enctype="multipart/form-data">
      <table width="550" border="0" cellspacing="3" cellpadding="0">
        <tr>
          <td colspan="2"><strong id="titulo">CADASTRO DE DETAQUE </strong></td>
        </tr>
        <tr>
          <td colspan="2"><hr /></td>
        </tr>
        <tr>
          <td width="54">Titulo:</td>
          <td width="496"><input name="titulo" type="text" size="73" /></td>
        </tr>
        <tr>
          <td>Data:</td>
          <td><label>
            <input name="data" type="text" size="20" />
          </label></td>
        </tr>
        <tr>
          <td valign="top">Prévia:</td>
          <td><label>
            <textarea name="previa" cols="55" rows="5"></textarea>
          </label></td>
        </tr>
        <tr>
          <td>Imagem:</td>
          <td><input name="imagem" type="file" size="58" />            </td>
        </tr>
        <tr>
          <td valign="top">Texto:</td>
          <td><label>
            <textarea name="texto" cols="55" rows="20" ></textarea>
          </label></td>
        </tr>
        <tr>
          <td>Fonte:</td>
          <td><label>
            <input name="fonte" type="text" size="20" />
          </label></td>
        </tr>
        <tr>
          <td> </td>
          <td><label>
            <input name="btCadastra" type="submit" value="Cadastrar" />
            <input name="btLimpa" type="reset" value="Limpar" />
          </label></td>
        </tr>
      </table>
        </form>

upload_form2.asp

 

<!-- #include file = "upload_funcoes.asp" -->

<%
' Chamando Funções, que fazem o Upload funcionar
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
%>
<%
' Recuperando os Dados Digitados ----------------------
titulo = UploadRequest.Item("titulo").Item("Value")
data   = UploadRequest.Item("data").Item("Value")
previa = UploadRequest.Item("previa").Item("Value")
texto  = UploadRequest.Item("texto").Item("Value")
fonte  = UploadRequest.Item("fonte").Item("Value")


' Tipo de arquivo que esta sendo enviado
tipo_foto = UploadRequest.Item("imagem").Item("ContentType")

' Caminho completo dos arquivos enviados
caminho_foto = UploadRequest.Item("imagem").Item("FileName")

' Nome dos arquivos enviados
nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

' Conteudo binario dos arquivos enviados
imagem = UploadRequest.Item("imagem").Item("Value")


' pasta onde as imagens serao guardadas
pasta = ("c:/Inetpub/wwwroot/aemerj/administrador/img")
nome_fotoDb = nome_foto

nome_foto="/"&nome_foto

' pasta + nome dos arquivos
imagem = "administrador/img" + nome_foto

' Fazendo o Upload do arquivo selecionado
if imagem <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)
For i = 1 to LenB(imagem)
MyFile.Write chr(AscB(MidB(imagem,i,1)))
Next
MyFile.Close
end if

' Conecta-se ao Banco de Dados

url_conexao = ("c:\Inetpub\wwwroot\pasta\dados\bd.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao 

' cadastra os dados no banco de dados
sql = "Insert into tb_destaque (titulo,data,previa,fonte,texto,imagem) values ('"& titulo &"', '"& data &"', '"& previa &"', '"& fonte &"', '"& texto &"', '"& imagem &"')"
conexao.Execute(sql)

' Mostra Mensagem de Confirmação na Tela
Response.write "Dados Cadastrados com Sucesso!"

' Redireciona após 3 segundos
response.write "<br><br>você será redirecionado em 3 segundos..<br>"
response.write "<meta http-equiv='refresh' content='3; url=admin.asp'/>"
%>

upload_funcoes.asp

 

<%
' Upload Sem componentes ---------------------------------------
Sub BuildUploadRequest(RequestBin)
on error resume next

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

' Fim upload sem Componentes -----------------------------------------

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exibida alguma mensagem de erro durante o upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o componente está corretamente registrado?

 

verifique se o servidor tem outros casos de upload com sucesso

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.