Avatar billede josefine14 Nybegynder
03. maj 2006 - 15:30 Der er 17 kommentarer og
1 løsning

sende fil til ftp sever..

Her er en kode. Jeg vil gerne have at min fil mit test.html dokument bliver kopier til en ftp sever:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        My.Computer.FileSystem.CopyFile("C:\Documents and Settings\All Users\Dokumenter\test.html", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk")
    End Sub
End Class

Jeg har ingen ide om hvordan man skal lave sådan noget.

Men det er jeg sikker på at der er nogen kloge hoder her inde der kan. ;o)
Avatar billede josefine14 Nybegynder
03. maj 2006 - 15:47 #1
Vil lige indskyd med ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk hvis du skriver kode ind her hvor der står kodeher så virker den ligesom et link... Så kan man bare linke sig hen til ftp serverne som man vil. Sorry i overskrifeten jeg manglet  R i Server. ;o)
Avatar billede josefine14 Nybegynder
03. maj 2006 - 21:41 #2
Er der ikke nogen der kan hjælp??? Kom nu...
Avatar billede arne_v Ekspert
04. maj 2006 - 03:33 #3
forudsat at du bruger .NET 2.0 (VB.NET 2005) så:

        Public Shared Sub Upload(ByVal localfile As String, ByVal ftpurl As String, ByVal bin As Boolean)
            Dim req As FtpWebRequest = DirectCast(WebRequest.Create(ftpurl), FtpWebRequest)
            req.Method = WebRequestMethods.Ftp.UploadFile
            req.UseBinary = bin
            If bin Then
                Dim instm As Stream = New FileStream(localfile, FileMode.Open, FileAccess.Read)
                Dim outstm As Stream = req.GetRequestStream()
                Dim b As Byte() = New Byte(10000) {}
                Dim n As Integer
                n = instm.Read(b, 0, b.Length)
                While n > 0
                    outstm.Write(b, 0, n)
                    n = instm.Read(b, 0, b.Length)
                End While
                instm.Close()
                outstm.Close()
            Else
                Dim sr As StreamReader = New StreamReader(localfile)
                Dim sw As StreamWriter = New StreamWriter(req.GetRequestStream())
                Dim line As String
                line = sr.ReadLine()
                While line IsNot Nothing
                    sw.WriteLine(line)
                    line = sr.ReadLine()
                End While
                sr.Close()
                sw.Close()
            End If
            Dim resp As FtpWebResponse = DirectCast(req.GetResponse(), FtpWebResponse)
        End Sub

eksempler på kald:

            Upload("C:\X.java", "ftp://anonymous:xxxxxx@arnepc3/X.java", False)
            Upload("C:\X.class", "ftp://anonymous:xxxxxx@arnepc3/X.class", True)
Avatar billede josefine14 Nybegynder
04. maj 2006 - 08:54 #4
OK Tak men jeg får vildt mange fejle alle dem her

Error    1    Name 'WebRequest' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    8    51    en test

Error    2    Type 'FtpWebRequest' is not defined.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    8    78    en test


Error    3    Name 'WebRequestMethods' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    9    22    en test


Error    3    Name 'WebRequestMethods' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    9    22    en test

Error    4    Type 'Stream' is not defined.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    12    26    en test
Error    5    Type 'FtpWebResponse' is not defined.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    35    72    en test
Error    6    Declaration expected.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    38    1    en test

Error    7    Declaration expected.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    40    13    en test

Error    7    Declaration expected.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    40    13    en test

Error    9    'End Sub' must be preceded by a matching 'Sub'.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    42    5    en test

Og kode ser sådan ud her nu har laver ´lidt om på den før
fik jeg mange fler fejl:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


    End Sub
    Public Shared Sub Upload(ByVal localfile As String, ByVal ftpurl As String, ByVal bin As Boolean)
        Dim req As Net.FtpWebRequest = DirectCast(WebRequest.Create(ftpurl), FtpWebRequest)
        req.Method = WebRequestMethods.Ftp.UploadFile
        req.UseBinary = bin
        If bin Then
            Dim instm As Stream = New FileStream(localfile, FileMode.Open, FileAccess.Read)
            Dim outstm As IO.Stream = req.GetRequestStream()
            Dim b As Byte() = New Byte(10000) {}
            Dim n As Integer
            n = instm.Read(b, 0, b.Length)
            While n > 0
                outstm.Write(b, 0, n)
                n = instm.Read(b, 0, b.Length)
            End While
            instm.Close()
            outstm.Close()
        Else
            Dim sr As IO.StreamReader = New IO.StreamReader(localfile)
            Dim sw As IO.StreamWriter = New IO.StreamWriter(req.GetRequestStream())
            Dim line As String
            line = sr.ReadLine()
            While line IsNot Nothing
                sw.WriteLine(line)
                line = sr.ReadLine()
            End While
            sr.Close()
            sw.Close()
        End If
        Dim resp As FtpWebResponse = DirectCast(req.GetResponse(), FtpWebResponse)
    End Sub

eksempler på kald:

            Upload("C:\X.java", "ftp://anonymous:xxxxxx@arnepc3/X.java", False)
            Upload("C:\X.class", "ftp://anonymous:xxxxxx@arnepc3/X.class", True)
    End Sub
End Class
Avatar billede josefine14 Nybegynder
04. maj 2006 - 08:55 #5
Jeg bruger Visual Studio 2005 .Net 2.0
Avatar billede josefine14 Nybegynder
04. maj 2006 - 08:59 #6
sorry jeg skriver så meget men jeg fik det lige til at du noget mere men får stdig fejl.

Error    1    Name 'WebRequest' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    8    51    en test

Error    2    Name 'WebRequestMethods' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    9    22    en test

Error    3    Name 'FileMode' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    12    67    en test

Error    4    Name 'FileAccess' is not declared.    C:\Documents and Settings\All Users\Dokumenter\Visual Studio 2005\Projects\en test\en test\Form1.vb    12    82    en test


NU ser den sådan ud:


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


    End Sub
    Public Shared Sub Upload(ByVal localfile As String, ByVal ftpurl As String, ByVal bin As Boolean)
        Dim req As Net.FtpWebRequest = DirectCast(WebRequest.Create(ftpurl), Net.FtpWebRequest)
        req.Method = WebRequestMethods.Ftp.UploadFile
        req.UseBinary = bin
        If bin Then
            Dim instm As IO.Stream = New IO.FileStream(localfile, FileMode.Open, FileAccess.Read)
            Dim outstm As IO.Stream = req.GetRequestStream()
            Dim b As Byte() = New Byte(10000) {}
            Dim n As Integer
            n = instm.Read(b, 0, b.Length)
            While n > 0
                outstm.Write(b, 0, n)
                n = instm.Read(b, 0, b.Length)
            End While
            instm.Close()
            outstm.Close()
        Else
            Dim sr As IO.StreamReader = New IO.StreamReader(localfile)
            Dim sw As IO.StreamWriter = New IO.StreamWriter(req.GetRequestStream())
            Dim line As String
            line = sr.ReadLine()
            While line IsNot Nothing
                sw.WriteLine(line)
                line = sr.ReadLine()
            End While
            sr.Close()
            sw.Close()
        End If
        Dim resp As Net.FtpWebResponse = DirectCast(req.GetResponse(), Net.FtpWebResponse)


        'eksempler på kald:

        Upload("C:\X.java", "ftp://anonymous:xxxxxx@arnepc3/X.java", False)
        Upload("C:\X.class", "ftp://anonymous:xxxxxx@arnepc3/X.class", True)
    End Sub
End Class
Avatar billede arne_v Ekspert
04. maj 2006 - 13:21 #7
du skal bare importere System.IO og System.Net
Avatar billede arne_v Ekspert
04. maj 2006 - 13:21 #8
eller prefixe med IO. og Net. som du er startet på
Avatar billede josefine14 Nybegynder
04. maj 2006 - 13:39 #9
OK nu ser det sådan ud:

Imports System.IO
Imports System.Net
Public Class Form1




    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
    Public Shared Sub Upload(ByVal localfile As String, ByVal ftpurl As String, ByVal bin As Boolean)
        Dim req As FtpWebRequest = DirectCast(WebRequest.Create(ftpurl), FtpWebRequest)
        req.Method = WebRequestMethods.Ftp.UploadFile
        req.UseBinary = bin
        If bin Then
            Dim instm As Stream = New FileStream(localfile, FileMode.Open, FileAccess.Read)
            Dim outstm As Stream = req.GetRequestStream()
            Dim b As Byte() = New Byte(10000) {}
            Dim n As Integer
            n = instm.Read(b, 0, b.Length)
            While n > 0
                outstm.Write(b, 0, n)
                n = instm.Read(b, 0, b.Length)
            End While
            instm.Close()
            outstm.Close()
        Else
            Dim sr As StreamReader = New StreamReader(localfile)
            Dim sw As StreamWriter = New StreamWriter(req.GetRequestStream())
            Dim line As String
            line = sr.ReadLine()
            While line IsNot Nothing
                sw.WriteLine(line)
                line = sr.ReadLine()
            End While
            sr.Close()
            sw.Close()
        End If
        Dim resp As FtpWebResponse = DirectCast(req.GetResponse(), FtpWebResponse)

        'eksempler på kald:

        Upload("C:\Documents and Settings\All Users\Dokumenter\hej.txt", "ftp://ftp-syamntec-1go:kodeher@ftpfree.1go.dk", False)
        Upload("C:\Documents and Settings\All Users\Dokumenter\test.txt", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk", True)
    End Sub
End Class


Den vil gerne køre programmet men den vil ikke sende noget til min ftp adresse...
Er det ikke muligt at gøre sådan at når man trykker på knappen inde i mit program så sende de der to tekst dokumenter til den FTP Server?
Der bliver slet ikke sende noget nu overhovet! :o)
Avatar billede arne_v Ekspert
04. maj 2006 - 14:23 #10
Du angiver ikke noget filnavn i din FTP URL !?!?
Avatar billede josefine14 Nybegynder
04. maj 2006 - 14:54 #11
OK.. Den vil bare ikke sende det... Det kan godt være jeg har gort det forkert...


        Upload("C:\Documents and Settings\All Users\Dokumenter\hej.txt", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk/hej.txt", False)
        Upload("C:\Documents and Settings\All Users\Dokumenter\test.txt", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk/test.txt", True)

Jeg ved at man kan sende til den ftp server....
Avatar billede arne_v Ekspert
04. maj 2006 - 16:47 #12
hvilken fejl faar du ?

du kan udskrive fejl information fra resp objektet
Avatar billede josefine14 Nybegynder
04. maj 2006 - 17:11 #13
Mit problem er jeg får ingen fejl det køre helt fint programmet og alt ting der er ingen fejl i det.

Men det kan være det har noget at gør med det her

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
  Public Shared Sub Upload

Men hvis jeg fjerner End Sub så får jeg en masse fejl....
Avatar billede arne_v Ekspert
05. maj 2006 - 02:04 #14
hvor kalder du Upload ?
Avatar billede josefine14 Nybegynder
05. maj 2006 - 11:33 #15
Jeg ved ikke helt hvad du mener med "hvor kalder du Upload" Men jeg har lavet sådan en kode her:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        My.Computer.Network.UploadFile("C:\Documents and Settings\All Users\Dokumenter\test.txt", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk/test.txt")
    End Sub
End Class

Den kunne godt uploade den fil der hed test.txt..

Men den kunne ikke finde ud af og uploade andet en tekst fil.

Det var jo nemmer hvis den kunne finde ud af og uploade andet ind bare en tekst fil.

Men jeg siger jo den skal uploade det her til

ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk/test.txt

Jeg har jo bare fjernet koden fordi den vil jeg jo ikke vise på en forum... Det virke i den kode oven over.

Men ikke i det du har lavet. :o)
Avatar billede arne_v Ekspert
06. maj 2006 - 04:55 #16
Du har prøvet med:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Upload("C:\Documents and Settings\All Users\Dokumenter\test.txt", "ftp://ftp-symantec-1go:kodeher@ftpfree.1go.dk/test.txt", false)
    End Sub

?
Avatar billede josefine14 Nybegynder
12. maj 2006 - 12:23 #17
Tråd Lukket
Avatar billede arne_v Ekspert
12. maj 2006 - 13:01 #18
så var det da godt at man brugt en masse tid på dit spørgsmål ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Cognizant Technology Solutions Denmark ApS

Sr. Test Analyst

Center Denmark Fonden

Cloud Engineer

LB Forsikring

Salesforce udvikler