9 messaggi dal 21 febbraio 2004
Salve a tutti,
come avrete capito dal titolo ho un problema con l'invio di un file residente sul web ad un sistema AS400 via ftp.

Ho scovato sul web un codice che mi permette di fare questo, ma funziona solo se il file è residente in locale. Ho cercato di modificare il percorso, ma senza successo.

Ecco il codice :

   Protected Sub cmdUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdUpload.Click 
    'On button Click call the function  
    'and Pass Parameter Values 
        'Display Message on Success 
        'Server.MapPath("~/") & "ftp.txt" 
        uploadFileUsingFTP("ftp://ip_address/cartella/cartella/file.txt", "http://www.sito.it/file.txt") 
    lblMsg.Text = "File Uploaded Successfully :)" 
  End Sub 
 
  Public Sub uploadFileUsingFTP(ByVal CompleteFTPPath As String, ByVal CompleteLocalPath As String, Optional ByVal UName As String = "", Optional ByVal PWD As String = "") 
    'Create a FTP Request Object and Specfiy a Complete Path  
    Dim reqObj As FtpWebRequest = WebRequest.Create(CompleteFTPPath) 
    'Call A FileUpload Method of FTP Request Object 
    reqObj.Method = WebRequestMethods.Ftp.UploadFile 
    'If you want to access Resourse Protected You need to give User Name and PWD 
        reqObj.Credentials = New NetworkCredential("user", "pwd") 
    'FileStream object read file from Local Drive 
    Dim streamObj As FileStream = File.OpenRead(CompleteLocalPath) 
    'Store File in Buffer 
    Dim buffer(streamObj.Length) As Byte 
    'Read File from Buffer 
    streamObj.Read(buffer, 0, buffer.Length) 
    'Close FileStream Object Set its Value to nothing 
    streamObj.Close() 
    streamObj = Nothing 
    'Upload File to ftp://localHost/ set its object to nothing 
    reqObj.GetRequestStream().Write(buffer, 0, buffer.Length) 
    reqObj = Nothing 
  End Sub 


Qualcuno saprebbe dirmi cosa succede?

Grazie
Giuseppe Scordo
Giscotech Informatics
652 messaggi dal 21 gennaio 2007
Contributi
funziona se il file che vuoi caricare è in locale ?
o se il server ftp in cui lo carichi è in locale ?

poi, che errore ti da se modifichi il percorso in modo tale da non renderlo locale ?
9 messaggi dal 21 febbraio 2004
PeppeDotNet ha scritto:
funziona se il file che vuoi caricare è in locale ?
o se il server ftp in cui lo carichi è in locale ?

funziona se il file che voglio caricare è in locale.

poi, che errore ti da se modifichi il percorso in modo tale da non renderlo locale ?


I formati URI non sono supportati.
e mi indica come errore la riga dove dovbrebbe comparire il completelocalpath

Riga 24: Dim streamObj As FileStream = File.OpenRead(CompleteLocalPath)

Grazie per la collaborazione.

Giuseppe Scordo
Giscotech Informatics
652 messaggi dal 21 gennaio 2007
Contributi
eh si.. ha ragione lui.
il metodo File.OpenRead() è per leggere file in locale. per leggere un file tramite il protocollo HTTP, devi utilizzare la classe WebClient.
quindi al posto di

Dim streamObj As FileStream = File.OpenRead(CompleteLocalPath)


devi scrivere

Dim myWebClient As New WebClient()
Dim streamObj As Stream = myWebClient.OpenRead(CompleteLocalPath)
9 messaggi dal 21 febbraio 2004
Grazie mille Giuseppe,
provo e ti faccio sapere.
Per adesso di nuovo grazie

Giuseppe Scordo
Giscotech Informatics
9 messaggi dal 21 febbraio 2004
Scusa ancora giuseppe,
quel problema sembra essere risolto. Adesso mi restituisce questo errore :

Questo flusso non supporta operazioni di ricerca.

Indicandomi come riga di errore questa:

Riga 28: Dim buffer(streamObj.Length) As Byte

Sapresti dirmi cosa succede?

Grazie

Giuseppe Scordo
Giscotech Informatics
9 messaggi dal 21 febbraio 2004
Ho provato ad inserire come indirizzo web sia ftp://www.sito.it/text.txt e anche http://www.sito.it/text.txt. Mi viene restituito il seguente errore:

Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Line 19: Dim reqObj As FtpWebRequest = WebRequest.Create(CompleteFTPPath)

Sempre colpa del percorso ftp ?
La descrizione dell'errore parla di permessi, ma sono permessi sul server o li devo impostare io?

Grazie in anticipo per l'aiuto.

Giuseppe Scordo
Giscotech Informatics
652 messaggi dal 21 gennaio 2007
Contributi
No, quello è un problema di sicurezza dettato dalle opzioni del tuo pc.
nel web.config, prova ad alzare il livello di trust della tua applicazione in questo modo:

<trust level="high" originUrl="..." />


oppure direttamente a full

<trust level="full" originUrl="..." />

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.