Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala ai Galera beleza?
É o seguinte estou com uma dúvida que esta tirando o sono e o problema da locaweb é esse componente de upload!
Eu preciso fazer upload de ate 10 imagens!!
quando tento fazer upload de 2 imagens ao mesmo tempo, ele nao faz o upload de uma das imagens!
e ainda salva com o nome errado a imagem que ele salva!!
fiz de varios jeitos o ultimo que ficou foi esse
ó meu codigo:
Set Obj_Upload = Server.CreateObject("SoftArtisans.FileUp") 'Caminho onde vai salvar as fotos Obj_Upload.Path = "caminho da imagem" 'Cria o Obj_File para a foto 1 Str_Teste = Obj_Upload.form("foto1") IF LEN(Str_Teste) > 0 THEN Str_Filename = Obj_Upload.form("foto1").ShortFileName Str_Foto_1 = geraNomeArq(Str_Filename) IF LEN(Str_Filename) > 0 THEN Obj_Upload.SaveAs Str_Filename 'Int_Largura = Obj_Upload.Width 'Int_Altura = Obj_Upload.Height IF LEN(Str_Foto_1) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename &_ "','" & Str_Foto_1 & "'," & Int_Largura & ", " & Int_Altura &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto_1 = "" END IF END IF 'Cria o Obj_File para a foto 2 Str_Teste_2 = Obj_Upload.form("foto2") IF LEN(Str_Teste_2) > 0 THEN Str_Filename_2 = Obj_Upload.form("foto2").ShortFileName Str_Foto_2 = geraNomeArq(Str_Filename_2) IF LEN(Str_Filename_2) > 0 THEN Obj_Upload.form("foto2").Save Str_Filename_2 IF LEN(Str_Foto_2) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename_2 &_ "','" & Str_Foto_2 & "'," & Int_Largura_2 & ", " & Int_Altura_2 &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto_2 = "" END IF END IF
Obrigado desde ja galera
Como faria isso?pois nao sao 10 campos fixos!depende da conexao....eu criei um teste de conexao que dependendo você pode ter 3 campos de upload, 4 ou ate 10
coloca a html do formulário ae pra gente.
<form action="acao.asp" method="post" enctype="multipart/form-data" name="formFotos" id="formFotos"><%FOR Int_J = 0 TO Int_I - 1%><p>Foto <%=Int_J + 1%> <input type="file" name="foto<%=Int_J + 1%>" id="foto<%=Int_J + 1%>" size="32" accept="image/jpeg,image/gif" /></p><%NEXT%><br /> <input type="submit" name="cadastrar" id="cadastrar" value="Enviar Fotos" /></form>
Bom no formulário você pode criar a lista conforme a quantidade requerida com o mesmo nome e assim quando for chamar a função de upload você faz um for each nos que estiverem preenchidos.. sem problemas... esse componente tem manual?
O que você esta me dizendo ficaria assim o form:
<form action="acao.asp" method="post" enctype="multipart/form-data" name="formFotos" id="formFotos"><%FOR Int_J = 0 TO Int_I - 1%><p>Foto <%=Int_J + 1%> <input type="file" name="foto" id="foto" size="32" accept="image/jpeg,image/gif" /></p><%NEXT%><br /> <input type="submit" name="cadastrar" id="cadastrar" value="Enviar Fotos" /></form>
e o processa assim:
Set Obj_Upload = Server.CreateObject("SoftArtisans.FileUp")'Caminho onde vai salvar as fotos Obj_Upload.Path = "caminho da imagem" 'Cria o Obj_File para a foto 1For each Str_Teste in request("foto") IF LEN(Str_Teste) > 0 THEN Str_Filename = Obj_Upload.form("foto").ShortFileName Str_Foto = geraNomeArq(Str_Filename) IF LEN(Str_Filename) > 0 THEN Obj_Upload.SaveAs Str_Filename IF LEN(Str_Foto) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename &_ "','" & Str_Foto & "'," & Int_Largura & ", " & Int_Altura &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto = "" END IF END IF
é isso?
entao ate tem manual, mais esse componente é mto limitado, o link é esse
seria isso mesmo...só faltou um NEXT para realizar o laço.
deu esse erro:
Request object error 'ASP 0208 : 80004005'Cannot use generic Request collection/revelacao_cadastra_fotos2.asp, line 106Cannot use the generic Request collection after calling BinaryRead.
meu codigo esta assim:'Cria o Objeto de Upload Set Obj_Upload = Server.CreateObject("SoftArtisans.FileUp") 'Leitura de um campo na variavel Str_Pasta = Obj_Upload.form("str_pasta") 'Caminho onde vai salvar as fotos Obj_Upload.Path = Application("bknd_pathimg") & "\revelacao\" & Str_Pasta & "\" 'Cria o Obj_File para a foto 1 FOR EACH Str_Teste in request("foto") IF LEN(Str_Teste) > 0 THEN Str_Filename = Obj_Upload.form("foto").ShortFileName Str_Foto = geraNomeArq(Str_Filename) IF LEN(Str_Filename) > 0 THEN Obj_Upload.SaveAs Str_Filename IF LEN(Str_Foto) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename &_ "','" & Str_Foto & "'," & Int_Largura & ", " & Int_Altura &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto = "" END IF END IF NEXT Set Obj_Upload = Nothing
tenta assim FOR EACH Str_Teste in Obj_Upload
Deu esse erro
Microsoft VBScript runtime error '800a01b6'Object doesn't support this property or method/revelacao_cadastra_fotos2.asp, line 109
eu ja tenteiFOR EACH Str_Teste in Obj_UploadesseFOR EACH Str_Teste in Obj_Upload.form("foto")esseFOR EACH Str_Teste in Obj_Upload("foto")
deu esse erro agora:
Microsoft VBScript runtime error '800a01a8'Object required: 'form(...)'/revelacao_cadastra_fotos2.asp, line 113
Ele ate passou do for each mais deu esse erro
olha meu codigo
'Cria o Objeto de Upload Set Obj_Upload = Server.CreateObject("SoftArtisans.FileUp") 'Leitura de um campo na variavel Str_Pasta = Obj_Upload.form("str_pasta") 'Caminho onde vai salvar as fotos Obj_Upload.Path = Application("bknd_pathimg") & "\revelacao\" & Str_Pasta & "\" 'Cria o Obj_File para a foto 1 FOR EACH Str_Teste IN Obj_Upload.form IF not Obj_Upload.IsEmpty THEN IF LEN(Str_Teste) > 0 THEN Str_Filename = Obj_Upload.form(Str_Teste).ShortFileName Str_Foto = geraNomeArq(Str_Filename) IF LEN(Str_Filename) > 0 THEN Obj_Upload.SaveAs Str_Filename IF LEN(Str_Foto) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename &_ "','" & Str_Foto & "'," & Int_Largura & ", " & Int_Altura &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto = "" END IF END IF END IF NEXT
por qual motivo você está recuperando essa variavel? Obj_Upload.form("str_pasta")bom tenta assimFOR EACH Str_Teste IN Obj_Upload.form("foto")
ja tentei, deu erro tbm!eu recupero ela, pois á pasta onde vou salvar as fotos!
agora o erro é esse:
Microsoft VBScript runtime error '800a01a8'Object required: 'form(...)'/revelacao_cadastra_fotos2.asp, line 115
meu codigo esta assim:'Cria o Objeto de Upload Set Obj_Upload = Server.CreateObject("SoftArtisans.FileUp") 'Leitura de um campo na variavel Str_Pasta = Obj_Upload.form("str_pasta") 'Caminho onde vai salvar as fotos Obj_Upload.Path = Application("bknd_pathimg") & "\revelacao\" & Str_Pasta & "\" 'Cria o Obj_File para a foto 1 FOR EACH Str_Teste IN Obj_Upload.form IF not Obj_Upload.IsEmpty THEN IF LEN(Str_Teste) > 0 THEN 'response.write Str_Teste 'response.end Str_Filename = Obj_Upload.form("foto").ShortFileName Str_Foto = geraNomeArq(Str_Filename) IF LEN(Str_Filename) > 0 THEN Obj_Upload.SaveAs Str_Filename IF LEN(Str_Foto) > 0 THEN Str_SQL_Cmd = "INSERT INTO tbCadastro_Album(idcadastro,foto_original" &_ ", foto_modificada, largura, altura) VALUES " &_ "(" & Session("Rev_ID") & ",'" & Str_Filename &_ "','" & Str_Foto & "'," & Int_Largura & ", " & Int_Altura &_ ")" Session("Conn").Execute(Str_SQL_Cmd) END IF ELSE Str_Foto = "" END IF END IF END IF NEXT Set Obj_Upload = Nothing
Não seria mais facil criar um For each nos arquivos do formulário? por que assim você não precisa criar o mesmo método duas vezes.