Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde Amigos,
Peguei um exemplo de upload, código:
Porém quando faço o upload, o arquivo não sobe para a hospedagem ..
<HTML>
<HEAD>
<TITLE>AspUpload Live Demo 1: Simple Uploads</TITLE>
</HEAD>
<BODY>
<FONT FACE="Arial" size="2">
<H4>Simple Uploads</h4>
<B>Select 1, 2 or 3 files, then click the Upload button. Images (.gif, .jpg, .png)
will be automatically displayed.</B>
<P>
<FORM NAME="MyForm" METHOD="POST" ENCTYPE="multipart/form-data"
ACTION="upload1.asp">
<TABLE CELLSPACING=0 CELLPADDING=3 BORDER=1>
<TD BGCOLOR="#FFFFCC">
<INPUT TYPE=FILE SIZE=40 NAME="FILE1"><BR>
<INPUT TYPE=FILE SIZE=40 NAME="FILE2"><BR>
<INPUT TYPE=FILE SIZE=40 NAME="FILE3"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload">
</TD>
</TABLE>
</FORM>
<P>
<A HREF="demo1.zip">Download source code for this demo</A>
</FONT>
</BODY>
</HTML>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = False
On Error Resume Next
Upload.SetMaxSize 1048576 ' Limit files to 1MB
Count = Upload.Save("c:\upload")
%>
<HTML>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<% If Err <> 0 Then %>
<FONT SIZE=3 FACE="Arial" COLOR=#0020A0>
<H3>The following error occured while uploading:</h3>
</FONT>
<FONT SIZE=3 FACE="Arial" COLOR=#FF2020>
<h2>"<% = Err.Description %>"</h2>
</FONT>
<FONT SIZE=2 FACE="Arial" COLOR="#0020A0">
Please <A HREF="demo1.asp">try again</A>.
</FONT>
<% Else %>
<FONT SIZE=3 FACE="Arial" COLOR=#0020A0>
<h2>Success! <% = Count %> file(s) have been uploaded.</h2>
</FONT>
<FONT SIZE=3 FACE="Arial" COLOR=#0020A0>
<TABLE BORDER=1 CELLPADDING=3 CELLSPACING=0>
<TH BGCOLOR="#FFFF00">Uploaded File</TH><TH BGCOLOR="#FFFF00">Size</TH><TH BGCOLOR="#FFFF00">Original Size</TH><TR><TD ALIGN=CENTER>
<IMG SRC="/uploaddir/<% = File.FileName%>"><BR><B><% = File.OriginalPath%></B><BR></TD>
<% Else %>
<TD><B><% = File.OriginalPath %></B></TD>
<% End If %>
<TD ALIGN=RIGHT VALIGN="TOP"><% =File.Size %> bytes</TD>
<TD ALIGN=RIGHT VALIGN="TOP"><% =File.OriginalSize %> bytes</TD><TR></TABLE>
</FONT>
<P>
<FONT SIZE=2 FACE="Arial" COLOR=#0020A0>
Click <A HREF="demo1.asp">here</A> to upload more files.
</FONT><HR>
<FONT SIZE=2 FACE="Arial" COLOR=#0020A0>
<A HREF="[http://www.persits.com/aspupload.exe](http://www.persits.com/aspupload.exe)">Download</A> your trial copy of AspUpload.
</FONT>
</CENTER>
</BODY>
</HTML>não esqueça de dar permissão a pasta (leitura e gravação) caso estiver usando o localhost.
procura no fórum la tem tópico sobra upload sem componentes, na minha opinião é bem melhor que usar componentes.
olha este aqui.
Primeiro iremos usar o formulário para a seleção de arquivos.
formhtml
Formulário
Excluir
//--------------------------------------------------------------------------------------------
var respData; //Variável que armazena os dados de retorno de cada upload
//As variáveis a seguir são alimentadas na função onComplete
//e utilizadas na função onAllComplete
var numArquivos = 0; //Indica quantos arquivos foram enviados
var nomeOriginal = new Array(); //Array com o NOME ORIGINAL de cada arquivo enviado
var nomeArquivo = new Array(); //Array com o NOME ALTERADO de cada arquivo enviado
var tamArquivo = new Array(); //Array com o TAMANHO de cada arquivo enviado
var statusArquivo = new Array();//Array com o STATUS DE ENVIO de cada arquivo
//--------------------------------------------------------------------------------------------
//Esta função será chamada no final de todo o envio
var onAllComplete = function(event, data) {
//Limpa o local para apresentar os dados
$('#fileInfo').html('');
//Apresenta as informações de cada arquivo
for (var nf = 1; nf <= numArquivos; nf++) {
$('#fileInfo').html(
$('#fileInfo').html() +
'Arquivo ' + nf + '' +
'Status de envio: ' + statusArquivo[nf] + '
' +
'Nome original do arquivo: ' + nomeOriginal[nf] + '
' +
'Nome do arquivo gravado: ' + nomeArquivo[nf] + '
' +
'Tamano do arquivo: ' + tamArquivo[nf] + '
' +
'Link para o arquivo
'
);
}
//Esconde o botão e apresenta os dados do arquivo
$('#fileNameList').show();
$('#fileUpload').hide();
}
//--------------------------------------------------------------------------------------------
//Esta função será chamada no final de CADA envio
var onComplete = function(event, queueID, fileObj, response, data) {
respData = $.parseJSON(response)
//Incrementa o número de arquivos
numArquivos++;
//Armazena o status de envio (certamente 'OK')
statusArquivo[numArquivos] = respData.result;
//Se não houve erro no evio, armazena os dados do arquivo nos arrays
if (respData.result != 'ERRO') {
nomeOriginal[numArquivos] = respData.nomeOriginal;
nomeArquivo[numArquivos] = respData.nomeArquivo;
tamArquivo[numArquivos] = respData.tamArquivo;
}
}
//--------------------------------------------------------------------------------------------
//O link Excluir mostra novamente o botão de upload
$('#lnkExclui').click(function(e) {
$('#fileNameList').hide();
$('#fileUpload').show();
e.preventDefault;
return false;
});
//--------------------------------------------------------------------------------------------
//Preparação inicial
$(document).ready(function() {
//Configuração do uploadify
$('#fileInput').uploadify({
'uploader' : 'uploadify/uploadify.swf', //Handler Flash para o upload
'script' : 'envio.asp', //Página a ser chamada para tratar o upload
'cancelImg' : 'uploadify/cancelUpload.png', //Imagem do botão de cancelar (X)
'auto' : true, //Envio se inicia ao selecionar o arquivo
'folder' : '', //Pasta para envio (quem vai tratar isso é o ASP)
'buttonText' : 'Procurar', //Texto do botão
'multi' : true, //Permite o envio de vários arquivos
'onComplete' : onComplete, //A função a ser chamada A CADA arquivo enviado (definida acima)
'onAllComplete' : onAllComplete, //A função a ser chamada no fim de TODO o envio (definida acima)
'onSelectOnce' : function(event,data) { //Esta função serve apenas para zerar o número de arquivos enviados
numArquivos = 0; // no início do envio
}
});
//Preparação para a primeira tela
$('#fileNameList').hide();
$('#fileUpload').show();
});
Abaixo a página de envio do upload, onde iremos a classe de Upload e a classe JSON.
envio.asp
<%
'------------------------------------------------------------------------
'Gera uma string aleatória com 'n' dígitos
'Usado para criar um nome aleatório para o arquivo
function fnGeraChave(n)
dim s
randomize
s = ""
while len(s) < n
s = chr (int((57 - 48 + 1) * Rnd + 48)) + s
wend
fnGeraChave = s
end function
'------------------------------------------------------------------------
Response.Charset="ISO-8859-1"
dim objUp 'Instância da classe upload (definida no arquivo clsUpload.asp)
dim objJson 'Instância da classe JSON (definida no arquivo JSON_2.0.4.asp)
dim diretorio 'Diretório destino
dim nomeOriginal 'Nome original do arquivo
dim nomeArquivo 'Nome temporário do arquivo
'(Alterado para evitar que arquivos com mesmo nome se sobrescrevam)
'Instancia a classe clsUpload
set objUp = New clsUpload
'Instancia a classe JSON (para enviar a resposta)
Set objJson = jsObject()
'Campos passados pelo Uploadify:
' - Filename Nome original do arquivo enviado
' - folder Este campo é definido pelo parâmetro 'folder' do uploadify - não estamos usando
' - Filedata Os bytes (stream) que compõem o arquivo
' - Upload Só achei o valor 'Submit Query' neste campo
if objUp.fields("Filedata").length <> 0 and objUp.fields("Filedata").length & "" <> "" then
nomeOriginal = objUp.fields("Filename").value
nomeArquivo = fnGeraChave(20) & "_" & nomeOriginal
'O diretório destino é definido aqui, como pasta filha 'uploads' da pasta atual
diretorio = request.serverVariables("PATH_TRANSLATED")
diretorio = left (diretorio,instrRev(diretorio,"\")) & "uploads\"
'Salva o arquivo (Lembre-se de dar direito de escrita para o usuário IUSR!)
objUp.fields("Filedata").saveAs(diretorio & nomeArquivo)
'Envia os dados do arquivo via JSON (pode ser que você precise deles no outro lado)
objJson("result") = "OK"
objJson("nomeArquivo") = nomeArquivo
objJson("tamArquivo") = objUp.fields("Filedata").length
objJson("nomeOriginal") = nomeOriginal
else
'Ocorreu um erro no envio
objJson("result") = "ERRO"
end if
'Envia o JSON para o cliente
objJson.flush
'Destroi as instâncias
Set objUp = Nothing
Set objJson = Nothing
%>
A classe JSON_2.0.4 e a classe de Upload podem ser baixadas aqui, lembrando que será preciso criar uma pasta chamada classjson e uma pasta chamada classupload, após você terá que criar uma pasta chamada uploads , é nesta pasta, onde ficarão os arquivos que forem enviados para o servidor. Lembre-se de que o usuário IUSR precisa de direito de escrita nele.
JSON_2.0.4.asp
<%
'
' VBS JSON 2.0.3
' Copyright (c) 2009 Tuðrul Topuz
' Under the MIT (MIT-LICENSE.txt) license.
'
Const JSON_OBJECT = 0
Const JSON_ARRAY = 1
Class jsCore
Public Collection
Public Count
Public QuotedVars
Public Kind ' 0 = object, 1 = array
Private Sub Class_Initialize
Set Collection = CreateObject("Scripting.Dictionary")
QuotedVars = True
Count = 0
End Sub
Private Sub Class_Terminate
Set Collection = Nothing
End Sub
' counter
Private Property Get Counter
Counter = Count
Count = Count + 1
End Property
' - data maluplation
' -- pair
Public Property Let Pair(p, v)
If IsNull(p) Then p = Counter
Collection(p) = v
End Property
Public Property Set Pair(p, v)
If IsNull(p) Then p = Counter
If TypeName(v) <> "jsCore" Then
Err.Raise &hD, "class: class", "Incompatible types: '" & TypeName(v) & "'"
End If
Set Collection(p) = v
End Property
Public Default Property Get Pair(p)
If IsNull(p) Then p = Count - 1
If IsObject(Collection(p)) Then
Set Pair = Collection(p)
Else
Pair = Collection(p)
End If
End Property
' -- pair
Public Sub Clean
Collection.RemoveAll
End Sub
Public Sub Remove(vProp)
Collection.Remove vProp
End Sub
' data maluplation
' encoding
Function jsEncode(str)
Dim charmap(127), haystack()
charmap(8) = "\b"
charmap(9) = "\t"
charmap(10) = "\n"
charmap(12) = "\f"
charmap(13) = "\r"
charmap(34) = "\"""
charmap(47) = "\/"
charmap(92) = "\\"
Dim strlen : strlen = Len(str) - 1
ReDim haystack(strlen)
Dim i, charcode
For i = 0 To strlen
haystack(i) = Mid(str, i + 1, 1)
charcode = AscW(haystack(i)) And 65535
If charcode < 127 Then
If Not IsEmpty(charmap(charcode)) Then
haystack(i) = charmap(charcode)
ElseIf charcode < 32 Then
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Else
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Next
jsEncode = Join(haystack, "")
End Function
' converting
Public Function toJSON(vPair)
Select Case VarType(vPair)
Case 0 ' Empty
toJSON = "null"
Case 1 ' Null
toJSON = "null"
Case 7 ' Date
' toJSON = "new Date(" & (vPair - CDate(25569)) * 86400000 & ")" ' let in only utc time
toJSON = """" & CStr(vPair) & """"
Case 8 ' String
toJSON = """" & jsEncode(vPair) & """"
Case 9 ' Object
Dim bFI,i
bFI = True
If vPair.Kind Then toJSON = toJSON & "[" Else toJSON = toJSON & "{"
For Each i In vPair.Collection
If bFI Then bFI = False Else toJSON = toJSON & ","
If vPair.Kind Then
toJSON = toJSON & toJSON(vPair(i))
Else
If QuotedVars Then
toJSON = toJSON & """" & i & """:" & toJSON(vPair(i))
Else
toJSON = toJSON & i & ":" & toJSON(vPair(i))
End If
End If
Next
If vPair.Kind Then toJSON = toJSON & "]" Else toJSON = toJSON & "}"
Case 11
If vPair Then toJSON = "true" Else toJSON = "false"
Case 12, 8192, 8204
toJSON = RenderArray(vPair, 1, "")
Case Else
toJSON = Replace(vPair, ",", ".")
End select
End Function
Function RenderArray(arr, depth, parent)
Dim first : first = LBound(arr, depth)
Dim last : last = UBound(arr, depth)
Dim index, rendered
Dim limiter : limiter = ","
RenderArray = "["
For index = first To last
If index = last Then
limiter = ""
End If
On Error Resume Next
rendered = RenderArray(arr, depth + 1, parent & index & "," )
If Err = 9 Then
On Error GoTo 0
RenderArray = RenderArray & toJSON(Eval("arr(" & parent & index & ")")) & limiter
Else
RenderArray = RenderArray & rendered & "" & limiter
End If
Next
RenderArray = RenderArray & "]"
End Function
Public Property Get jsString
jsString = toJSON(Me)
End Property
Sub Flush
If TypeName(Response) <> "Empty" Then
Response.Write(jsString)
ElseIf WScript <> Empty Then
WScript.Echo(jsString)
End If
End Sub
Public Function Clone
Set Clone = ColClone(Me)
End Function
Private Function ColClone(core)
Dim jsc, i
Set jsc = new jsCore
jsc.Kind = core.Kind
For Each i In core.Collection
If IsObject(core(i)) Then
Set jsc(i) = ColClone(core(i))
Else
jsc(i) = core(i)
End If
Next
Set ColClone = jsc
End Function
End Class
Function jsObject
Set jsObject = new jsCore
jsObject.Kind = JSON_OBJECT
End Function
Function jsArray
Set jsArray = new jsCore
jsArray.Kind = JSON_ARRAY
End Function
Function toJSON(val)
toJSON = (new jsCore).toJSON(val)
End Function
%>
Olá Bru_ce,
você precisa especificar o path de seu Servidor.
Do jeito que está, é para localhost: Count = Upload.Save("c:\upload")
No laboratório de script tem vários exemplos, ou mesmo no Google.
att,