Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Upload su altro server

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Upload su altro server

    Carissimi,
    è possibile uploadare file su server esterno tramite http:// e non usare Server.MapPath per quello locale?
    Grazie
    G.

  2. #2
    Hai quattro strade:

    1.Ti inventi un formato di invio dal Server A Al server B
    2.Invii i dati in Xml
    3.Invii i dati in formato upload (multipart)
    4.Invii al Server B solo i nomi dei files che devi inserire e la loro destinazione.

    Il server B guarda quali hanno data diversa da quelli che ha in locale e chiede al server A un file alla volta e lo salva.

    Il procedimento più semplice e più efficace è il 4, realizzabile con Microsoft.XMLHTTP

    Link di riferimento:
    http://www.motobit.com/tips/detpg_uploadvbsie/

    Quello che dovrai fare sarà inviare i dati in upload dal server a al b.

    Questi saranno i passaggi.

    1.Selezione dei files da inviare
    2.Creazione della richiesta in formato multipart (http://servlets.com/rfcs/rfc1867.html )
    Quindi dovrai leggere i file e creare una stringa da inviare (usa Adodb.stream)
    3.Invio con Microsoft.XMLHTTP al Server B in post alla pagina di upload

    Sul server B dovrai mettere un upload

    Soluzione 4

    Questi saranno i passaggi.

    Leggi i files da inviare e crei un file xml con NomeFile, Destinazione, Data ultima modifica Lo inivi al server b con Microsoft.XMLHTTP alla pagina riceviListaFile.asp (per esempio)

    La pagina riceviListaFile.asp controlla se il file è sul server.
    Se il file non è sul server oppure è presente ma la data è cambiata , con Microsoft.XMLHTTP chiede al server A sempre con lo stesso oggetto e lo salva (puoi richiedere diretamente l'url o passare per una pagina)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao e grazie per la risposta,
    Tu cosa mi consigli per ovviare al problema?
    Devo caricare fil su server esterno per ragioni di dimensioni di upload.
    Comunque io posso caricare eventualmente gli script dell'upload sul server esterno.
    Ma dato che deve avvenire tutto in area protetta con utilizzo di db access come fa a funzionare sul server esterno, dovrei caricarci anche il db e questo non posso farlo.
    Grazie per il tuo aiuto.
    Ciao
    G.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    grazie 1000
    per la spiegazione ma per me è complicatissima, i siti che mi hai indicato sono in inglese.
    So che chiedo troppo ma non potresti indicarmi i passaggi eventualmente creando delle pagine di esempio?
    Grazie
    G.

  5. #5
    Leggi i files sul server A da inviare al server B e crei un file xml con, ad esempio, NomeFile, Destinazione, Data ultima modifica.

    Lo invii al server B, con Microsoft.XMLHTTP, alla pagina InviaFiles.asp

    codice:
    <%
    
    'lista dei file da inviare al server B
    
    Function GetListFolder(Path,Dest)
    Dim File,Res
    Path = Server.MapPath(Path)
    Set Fso = Server.CreateObject("Scripting.FileSystemObject")
    Set Files = Fso.getFolder(Path).Files
    For Each File In Files
    Res = Res & File.Path & ";" & File.DateLastModified & ";" & Dest & VbCrLf
    Next
    GetListFolder = Res
    end function
    
    ListaFiles = GetListFolder("/pagine","/public/")
    response.write(ListaFiles)
    
    
    
    'collegamento con SERVER B per invio dati ...
    
    Function  PostDataToUrl(Url,Buffer,ResponseIsBinary)
    Dim Http
    	Set Http = Server.CreateObject("Microsoft.XMLHTTP")
    	Http.open "POST",Url,False
    	Http.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
    	Http.Send(buffer)
    	If ResponseIsBinary then
    		PostDataToUrl = Http.ResponseBody
    	Else
    		PostDataToUrl = Http.ResponseText
    	End if
    	Set Http=Nothing
    End Function
    
    Result = PostDataToUrl("http://www.secondoserver.com/inviafiles.asp",ListaFiles,False)
    
    Response.Write "Server B = " & Result
    
    
    %>
    Dovrai caricare la pagina InviaFiles.asp sul server B e sarà questa che andrà a leggere la lista dei files inviata.

    INVIAFILES.ASP del SERVER B

    codice:
    <%
    
               Const TEM = &h01
    	Const SOF = &hc0
    	Const DHT = &hc4
    	Const JPGA= &hc8
    	Const DAC = &hcc
    	Const RST = &hd0
    	Const SOI = &hd8
    	Const EOI = &hd9
    	Const SOS = &hda
    	Const DQT = &hdb
    	Const DNL = &hdc
    	Const DRI = &hdd
    	Const DHP = &hde
    	Const EXP_ = &hdf
    	Const APP = &he0
    	Const JPG = &hf0
    	Const COM = &hfe
    
    	Const AND_	= " AND "
    	Const OR_	= " OR "
    
    
    Function RSBinaryToString(xBinary)
      Dim Binary
      If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
      
      Dim RS, LBinary
      Const adLongVarChar = 201
      Set RS = CreateObject("ADODB.Recordset")
      LBinary = LenB(Binary)
      
      If LBinary>0 Then
        RS.Fields.Append "mBinary", adLongVarChar, LBinary
        RS.Open
        RS.AddNew
          RS("mBinary").AppendChunk Binary 
        RS.Update
        RSBinaryToString = RS("mBinary")
      Else
        RSBinaryToString = ""
      End If
    End Function
    
    Function MultiByteToBinary(MultiByte)
      Dim RS, LMultiByte, Binary
      Const adLongVarBinary = 205
      Set RS = CreateObject("ADODB.Recordset")
      LMultiByte = LenB(MultiByte)
      If LMultiByte>0 Then
        RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
        RS.Open
        RS.AddNew
          RS("mBinary").AppendChunk MultiByte & ChrB(0)
        RS.Update
        Binary = RS("mBinary").GetChunk(LMultiByte)
      End If
      MultiByteToBinary = Binary
    End Function
    
    
    Dim ByteData,TotalBytes,StrData
    TotalBytes = Request.TotalBytes
    ByteData = Request.BinaryRead(TotalBytes)
    StrData = RSBinaryToString(ByteData)
    
    Response.Write StrData
    
    Lines = Split(StrData,VbCrLf)
    For Each Line in Lines
    Field = Split(Line,";")
    'Field(0) è il nome, field(1) è la datamod, field(2) è la dest
    Next
    
    %>

  6. #6
    Utente di HTML.it L'avatar di EmTmE
    Registrato dal
    Jun 2001
    Messaggi
    333
    scusate la domanda ...
    ma a che serve far tutto sto casino ?
    mi spiego meglio se devi cmq mettere sul server B una pagina asp che processi i file si presume che puoi metterci quello che vuoi...
    allora perchè non fare una pagina di normalissimo upload da mettere sul server B che venga richiamata dentro un frame di una pagina sul server A e uppi direttamente sul server B pur essendo richiamata sul server A ?
    magari ho capito male la necessità ma leggendo mi pare tutto un lavoro enorme e immotivato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.