Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 15
1
.NET 3.x

Загрузка файла на сервер

07.07.2012, 15:04. Показов 2706. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста, как загрузить файл на сервер по ftp
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2012, 15:04
Ответы с готовыми решениями:

Загрузка файла на ftp сервер
Как загрузить файл на ftp сервер?

Загрузка файла на сервер через HttpWebRequest
Есть сайт на php,чтобы поднять файл(тоже php) нужно сначала сделать авторизацию.Эту проблему я...

Загрузка по FTP на сервер
Народ, подскажите как загрузить на сервер по FTP файл, и создать папку на этом сервере ? ...

загрузка файла на сервер с вашего сайта на чужой сервер под вашим логином!
Извените зараннее если ошибся разделом, не нашел куда можно отнести данную тему и посчитал как...

18
196 / 188 / 9
Регистрация: 14.06.2011
Сообщений: 495
07.07.2012, 15:51 2
Обсуждалось много раз, воспользуйтесь поиском.
1
3 / 3 / 0
Регистрация: 06.07.2012
Сообщений: 14
07.07.2012, 16:02 3
VB.NET
1
My.Computer.Network.UploadFile()
можно ещё WebClient'ом воспользоваться...
1
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 15
07.07.2012, 17:10  [ТС] 4
Спасибо, а как сделать, чтобы была проверка размера файла и т.к я собираюсь загружать картинки, то и размеры картинки, например 64x32
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
07.07.2012, 18:18 5
Цитата Сообщение от Theme Посмотреть сообщение
чтобы была проверка размера файла
Не забыть Imports System.IO
VB.NET
1
2
Dim fi As New FileInfo("путь к файлу")
Dim s As Long = fi.Length'размер файла в байтах
Цитата Сообщение от Theme Посмотреть сообщение
размеры картинки, например 64x32
VB.NET
1
2
3
Dim img As New Bitmap("путь к файлу")
Dim w As Single = img.PhysicalDimension.Width'ширина изображения
Dim h As Single = img.PhysicalDimension.Height'высота изображения
По-моему, так!
2
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 15
07.07.2012, 18:47  [ТС] 6
Хм, сейчас попробую

Добавлено через 26 минут
Не получилось
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
 Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
        OpenFileDialog1.InitialDirectory = "C:\\"
        OpenFileDialog1.Filter = "Изображение 64x32 (*.png)|*.png" 'MessageBox.Show("Загрузка скинов находится в разработке", "Ошибка")
        OpenFileDialog1.FilterIndex = 1
        OpenFileDialog1.RestoreDirectory = True
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            My.Computer.Network.UploadFile(OpenFileDialog1.FileName.ToString(), "ftp://@31.170.164.103/public_html/cabinet/thiscraftServer/MinecraftSkins/" & Form1.TextBox1.Text & ".png", "u776270899", "Rfvtcbnq1")
            PictureBox4.ImageLocation = ("http://thiscraft.tk/cabinet/skin.php?user_name=" & Form1.TextBox1.Text & "&mode=1")
            PictureBox5.ImageLocation = ("http://thiscraft.tk/cabinet/skin.php?user_name=" & Form1.TextBox1.Text & "&mode=2")
        End If
 
        MessageBox.Show("Ура! Скин успешно загружен!", "Внимание!")
    End Sub
В этом коде мне надо сделать проверку
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
07.07.2012, 18:56 7
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
    OpenFileDialog1.InitialDirectory = "C:\\"
    OpenFileDialog1.Filter = "Изображение 64x32 (*.png)|*.png" 'MessageBox.Show("Загрузка скинов находится в разработке", "Ошибка")
    OpenFileDialog1.FilterIndex = 1
    OpenFileDialog1.RestoreDirectory = True
    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
        Dim fi As New FileInfo(OpenFileDialog1.FileName)
        Dim s As Long = fi.Length'размер файла в байтах
        Dim img As New Bitmap(OpenFileDialog1.FileName)
        Dim w As Single = img.PhysicalDimension.Width'ширина изображения
        Dim h As Single = img.PhysicalDimension.Height'высота изображения
        If s < 100 And w < 64 And h < 32 Then'свои числа поставьте
            My.Computer.Network.UploadFile(OpenFileDialog1.FileName.ToString(), "ftp://@31.170.164.103/public_html/cabinet/thiscraftServer/MinecraftSkins/" & Form1.TextBox1.Text & ".png", "u776270899", "Rfvtcbnq1")
            PictureBox4.ImageLocation = ("http://thiscraft.tk/cabinet/skin.php?user_name=" & Form1.TextBox1.Text & "&mode=1")
            PictureBox5.ImageLocation = ("http://thiscraft.tk/cabinet/skin.php?user_name=" & Form1.TextBox1.Text & "&mode=2")
        End If
    End If
 
    MessageBox.Show("Ура! Скин успешно загружен!", "Внимание!")
End Sub
Как-то так, наверное!
0
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 15
07.07.2012, 18:58  [ТС] 8
Не работает
Теперь вообще не грузит
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
07.07.2012, 19:16 9
Цитата Сообщение от Theme Посмотреть сообщение
Теперь вообще не грузит
Ограничения по размеру файла какие?
Вы 100 заменили на свое значение?
0
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 15
07.07.2012, 19:58  [ТС] 10
ДА , заменил, но все равно не работает
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
07.07.2012, 22:56 11
Цитата Сообщение от Theme Посмотреть сообщение
все равно не работает
Приведите максимальные параметры файла (размер, ширина, высота) и часть кода, где Вы эти параметры проверяете.
0
Ciberst
07.07.2012, 23:28
  #12

Не по теме:

Вместо

VB.NET
1
And
Лучше использовать
VB.NET
1
AndAlso
Вместо
VB.NET
1
Or
Используйте
VB.NET
1
OrElse

0
77 / 38 / 2
Регистрация: 07.01.2012
Сообщений: 414
08.07.2012, 00:15 13
Я делал загрузку на FTP сервер так:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 Private Sub uploadFTP(ByVal URl As String, ByVal filename As String, ByVal bk As String, ByVal pw As String)
        Dim requ As FtpWebRequest = Nothing
        Dim resp As FtpWebResponse = Nothing
        Dim requStrm As Stream = Nothing
        Dim fileStrm As FileStream = Nothing
        Try
            requ = CType(WebRequest.Create(URL), FtpWebRequest)
            requ.Credentials = New NetworkCredential(bk, pw)
            requ.Method = WebRequestMethods.Ftp.UploadFile
            requ.Timeout = System.Threading.Timeout.Infinite
            requ.Proxy = Nothing
            requStrm = requ.GetRequestStream()
            Dim buff(2048) As Byte
            Dim bytesRead As Integer = 0
            fileStrm = File.OpenRead(filename)
            Do While (True)
                bytesRead = fileStrm.Read(buff, 0, buff.Length)
                If (bytesRead = 0) Then Exit Do
                requStrm.Write(buff, 0, bytesRead)
            Loop
            requStrm.Close()
            resp = CType(requ.GetResponse(), FtpWebResponse)
            ToolStripStatusLabel1.Text = "Загрузка заершена!"
        Catch ex As UriFormatException
            ToolStripStatusLabel1.Text = ex.Message
        Catch ex As IOException
            ToolStripStatusLabel2.Text = ex.Message
        Catch ex As WebException
            ToolStripStatusLabel2.Text = ex.Message
        Finally
            If resp IsNot Nothing Then resp.Close()
            If fileStrm IsNot Nothing Then fileStrm.Close()
            If requStrm IsNot Nothing Then requStrm.Close()
        End Try
    End Sub
VB.NET
1
2
3
4
5
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If (OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
            uploadFTP(OpenFileDialog1.FileName, TextBox1.Text + "/" + Path.GetFileName(OpenFileDialog1.FileName), TextBox2.Text, TextBox3.Text)
        End If
    End Sub
А вот сам весь код моего FTP менеджера:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Imports System.Net
Imports System.IO
Public Class Form1
 
    Private Sub listFTP(ByVal URL As String, ByVal bk As String, ByVal pw As String)
        Dim requ As FtpWebRequest = Nothing
        Dim resp As FtpWebResponse = Nothing
        Dim reader As StreamReader = Nothing
        Try
            requ = CType(WebRequest.Create(URL), FtpWebRequest)
            requ.Credentials = New NetworkCredential(bk, pw)
            requ.Method = WebRequestMethods.Ftp.ListDirectory
            resp = CType(requ.GetResponse(), FtpWebResponse)
            reader = New StreamReader(resp.GetResponseStream())
            While (reader.Peek() > -1)
                ListBox1.Items.Add(reader.ReadLine())
            End While
            ToolStripStatusLabel1.Text = "Листинг завершен!"
        Catch ex As UriFormatException
            ToolStripStatusLabel1.Text = ex.Message
        Catch ex As WebException
            ToolStripStatusLabel2.Text = ex.Message
        Finally
            If reader IsNot Nothing Then reader.Close()
        End Try
    End Sub
 
    Private Sub downloadFTP(ByVal URL As String, ByVal bk As String, ByVal pw As String)
        Dim requ As FtpWebRequest = Nothing
        Dim resp As FtpWebResponse = Nothing
        Dim respStrm As Stream = Nothing
        Dim fileStrm As FileStream = Nothing
        Try
            requ = CType(WebRequest.Create(URL), FtpWebRequest)
            requ.Credentials = New NetworkCredential(bk, pw)
            requ.Method = WebRequestMethods.Ftp.DownloadFile
            resp = CType(requ.GetResponse(), FtpWebResponse)
            respStrm = resp.GetResponseStream()
            SaveFileDialog1.FileName = Path.GetFileName(requ.RequestUri.LocalPath)
            If (SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
                fileStrm = File.Create(SaveFileDialog1.FileName)
                Dim buff(1024) As Byte
                Dim bytesRead As Integer = 0
                While (True)
                    bytesRead = respStrm.Read(buff, 0, buff.Length)
                    If (bytesRead = 0) Then Exit While
                    fileStrm.Write(buff, 0, bytesRead)
                End While
                ToolStripStatusLabel1.Text = "Загрузка завершена!"
            End If
        Catch ex As UriFormatException
            ToolStripStatusLabel1.Text = ex.Message
        Catch ex As WebException
            ToolStripStatusLabel2.Text = ex.Message
        Catch ex As IOException
            ToolStripStatusLabel2.Text = ex.Message
        Finally
            If respStrm IsNot Nothing Then respStrm.Close()
            If fileStrm IsNot Nothing Then fileStrm.Close()
        End Try
    End Sub
 
    Private Sub uploadFTP(ByVal URl As String, ByVal filename As String, ByVal bk As String, ByVal pw As String)
        Dim requ As FtpWebRequest = Nothing
        Dim resp As FtpWebResponse = Nothing
        Dim requStrm As Stream = Nothing
        Dim fileStrm As FileStream = Nothing
        Try
            requ = CType(WebRequest.Create(URL), FtpWebRequest)
            requ.Credentials = New NetworkCredential(bk, pw)
            requ.Method = WebRequestMethods.Ftp.UploadFile
            requ.Timeout = System.Threading.Timeout.Infinite
            requ.Proxy = Nothing
            requStrm = requ.GetRequestStream()
            Dim buff(2048) As Byte
            Dim bytesRead As Integer = 0
            fileStrm = File.OpenRead(filename)
            Do While (True)
                bytesRead = fileStrm.Read(buff, 0, buff.Length)
                If (bytesRead = 0) Then Exit Do
                requStrm.Write(buff, 0, bytesRead)
            Loop
            requStrm.Close()
            resp = CType(requ.GetResponse(), FtpWebResponse)
            ToolStripStatusLabel1.Text = "Загрузка заершена!"
        Catch ex As UriFormatException
            ToolStripStatusLabel1.Text = ex.Message
        Catch ex As IOException
            ToolStripStatusLabel2.Text = ex.Message
        Catch ex As WebException
            ToolStripStatusLabel2.Text = ex.Message
        Finally
            If resp IsNot Nothing Then resp.Close()
            If fileStrm IsNot Nothing Then fileStrm.Close()
            If requStrm IsNot Nothing Then requStrm.Close()
        End Try
    End Sub
 
    Private Sub deleteFTP(ByVal URL As String, ByVal bk As String, ByVal pw As String)
        Dim requ As FtpWebRequest = Nothing
        Dim resp As FtpWebResponse = Nothing
        Try
            requ = CType(WebRequest.Create(URL), FtpWebRequest)
            requ.Credentials = New NetworkCredential(bk, pw)
            requ.Method = WebRequestMethods.Ftp.DeleteFile
            resp = CType(requ.GetResponse(), FtpWebResponse)
            ToolStripStatusLabel1.Text = "Файл удален!"
        Catch ex As UriFormatException
            ToolStripStatusLabel2.Text = ex.Message
        Catch ex As WebException
            ToolStripStatusLabel2.Text = ex.Message
        Finally
            If resp IsNot Nothing Then resp.Close()
        End Try
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Items.Clear()
        listFTP(TextBox1.Text, TextBox2.Text, TextBox3.Text)
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        downloadFTP(TextBox4.text, TextBox2.Text, TextBox3.Text)
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        If (OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
            uploadFTP(OpenFileDialog1.FileName, TextBox1.Text + "/" + Path.GetFileName(OpenFileDialog1.FileName), TextBox2.Text, TextBox3.Text)
        End If
    End Sub
 
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        TextBox4.Text = TextBox1.Text & "/" & ListBox1.SelectedItems(0).ToString()
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        If (MessageBox.Show("Вы хотите удалить этот файл?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes) Then
            deleteFTP(TextBox4.Text, TextBox2.Text, TextBox3.Text)
        End If
    End Sub
 
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ListBox1.Items.Clear()
        listFTP(TextBox1.Text, TextBox2.Text, TextBox3.Text)
    End Sub
 
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Application.Exit()
    End Sub
End Class
На форме 4 текстбокса, 6 баттонов, 1 листбокс и тулстрипменю
0
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
08.07.2012, 00:57 14
Spread, без бутылки не разберешь
0
Ciberst
08.07.2012, 01:13
  #15

Не по теме:

Матерь божья! Да чего вы творите-то! Это же кошмар! А не код! Для данной ситуации втройне!

0
77 / 38 / 2
Регистрация: 07.01.2012
Сообщений: 414
08.07.2012, 01:17 16
я тоже чуть запутался
вот выложил весь проект FTP менеджера если вопросы будут то пишите
Вложения
Тип файла: rar WindowsApplication6.rar (82.8 Кб, 71 просмотров)
0
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
08.07.2012, 01:20 17
Цитата Сообщение от Spread Посмотреть сообщение
я тоже чуть запутался
вот выложил весь проект FTP менеджера если вопросы будут то пишите

Не по теме:

какие у нас к тебе могут быть вопросы, если ты сам запутался в "твоем" коде? Ну не смешите меня!

0
77 / 38 / 2
Регистрация: 07.01.2012
Сообщений: 414
08.07.2012, 01:28 18
запутался не в коде, а в том как предоставил его! лучше помогай, а не ворчи не по теме!
0
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
08.07.2012, 09:58 19

Не по теме:

Цитата Сообщение от Spread Посмотреть сообщение
запутался не в коде, а в том как предоставил его! лучше помогай, а не ворчи не по теме!
Итак, все! закончим холивар! Я сейчас нахожусь в 5 метрах от компа, поэтому код от меня будет в течение 12-48 часов, ибо не хочу шуметь и будить моих злых соседей своей турбиной , которая выступает в роли охладителя процессора и меня, а она ну очень шумная.



Добавлено через 8 часов 20 минут
Лови, все проверил, все работает.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.InitialDirectory = "C:\"
        OpenFileDialog1.Filter = "Изображение 64x32 (*.png)|*.png" 'MessageBox.Show("Загрузка скинов находится в разработке", "Ошибка")
        OpenFileDialog1.FilterIndex = 1
        OpenFileDialog1.Multiselect = False
        OpenFileDialog1.RestoreDirectory = True
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            UploadFileToFTPserver("ftp://31.170.164.103/public_html/cabinet/thiscraftServer/MinecraftSkins/" & Textbox1.Text & ".png", "u776270899", "Rfvtcbnq1", OpenFileDialog1.FileName)
        End If
    End Sub
    Private Sub UploadFileToFTPserver(ByVal ftp As String, ByVal user As String, ByVal pas As String, ByVal file As String)
        Dim fi As New IO.FileInfo(file)
        Dim s As Long = fi.Length 'размер файла в байтах
        Dim img As New Bitmap(file)
        Dim w As Single = img.PhysicalDimension.Width 'ширина изображения
        Dim h As Single = img.PhysicalDimension.Height 'высота изображения
        Dim flag As Integer = 0
        If s > 100 * 1024 Then flag += 2
        If w > 64 Then flag += 4
        If h > 32 Then flag += 8
        If flag <> 0 Then
            Dim errMes As String = "Ошибка! Файл не подходит по данным параметрам: "
            Dim Col As New Collection
            Dim Max As Integer = 8
            Do While Max > 0
                If flag >= Max Then
                    Select Case Max
                        Case 8
                            errMes += "высота изображения, "
                        Case 4
                            errMes += "ширина изображения, "
                        Case 2
                            errMes += "размер файла, "
                    End Select
                    flag -= Max
                    Max /= 2
                Else
                    Max /= 2
                End If
            Loop
            errMes = errMes.Remove(errMes.Length - 2, 2)
            MsgBox(errMes, MsgBoxStyle.Critical, "Ошибка")
        Else
            Try
                My.Computer.Network.UploadFile(file, ftp, user, pas, False, 1000, FileIO.UICancelOption.ThrowException)
                MsgBox("УРА! МЫ ЗАГРУЗИЛИ ФАЙЛ")
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Не удалось загрузить файл")
            End Try
        End If
    End Sub
0
08.07.2012, 09:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2012, 09:58
Помогаю со студенческими работами здесь

Загрузка файла на сервер?
Здравствуйте! Работаю на языке C#, среда Visual Studio! Задачка такая. В программе есть...

Загрузка файла на сервер
Допустим имеется окно с двумя кнопками и контрол image. При нажатии на первую кнопку открывается...

Загрузка файла на сервер
Здравствуйте, кто может помочь с написанием кода для загрузки файла на сервер? сайт на денвере.

Загрузка файла на сервер
Привет всем) Не подскажете как загрузить какой нибудь файл на сервер. Есть поле, кнопка &quot;Загрузить&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru