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

Кодировка при загрузке файла на FTP сервер

23.08.2012, 15:16. Показов 3626. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня возникла проблема с правильной загрузкой файла на FTP сервер. Файл загружается, но русские символы показываются в виде вопросительных знаков. Вот этот фрагмент кода:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
Public Sub FTPUpload(ByVal Host As String, ByVal Name As String, ByVal Pass As String, ByVal FileName As String)
        Dim Request As FtpWebRequest = CType(WebRequest.Create(Host), FtpWebRequest)
        Request.Credentials = New NetworkCredential(Name, Pass)
        Request.Method = WebRequestMethods.Ftp.UploadFile
        Dim strFile As StreamReader = New StreamReader(FileName)
        Dim Buffer As Byte() = Encoding.Unicode.GetBytes(strFile.ReadToEnd)
        strFile.Close()
        Dim strRequest As Stream = Request.GetRequestStream
        strRequest.Write(Buffer, 0, Buffer.Length)
        strRequest.Close()
    End Sub
Возможно ли это из-за 2000'ой винды, на которой я работаю? Кто согласится помочь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2012, 15:16
Ответы с готовыми решениями:

Тайм аут при загрузке файла на FTP-сервер
Возникла проблема. Нужно загрузить файл на FTP-сервер. Вся суть в том, что папки, в которую нужно...

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

При загрузке файла на ftp-сервер - ошибка 553 (не могу создать файл)
Здравствуйте товарищи, я пытаюсь загрузить файл через ftp на свой сервер, пишет мне ошибку 553...

FTP-сервер ProFTPd на Debian/Ubuntu. Зависоны при загрузке
Доброго времени суток. Вопрос такой. Когда я начинаю заливать на сервер много файлов через FTP,...

16
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
23.08.2012, 17:06 2
Infuzo, а Вы не пробовали код
VB.NET
1
My.Computer.Network.UploadFile(Тут параметры, разберетесь без труда)
?
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
23.08.2012, 17:56  [ТС] 3
Памирыч, может и поможет, но в любом случае это решает только одну проблему - с загрузкой файла. А мне ещё нужна корректная дозапись в файл. Давайте подумаем, что можно сделать с этими кодировками.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
23.08.2012, 18:35 4
Цитата Сообщение от Infuzo Посмотреть сообщение
дозапись
Сейчас не понял. А как это - дозапись в файл? Разве в Вашем коде это реализовано?
Я полагал, Ваша задача - залить файл на сервер. А зачем там дозапись и в каких случаях она необходима?
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
23.08.2012, 19:44  [ТС] 5
Памирыч, для записи действий и т. д. Вот код, в котором она реализована:

VB.NET
1
2
3
4
5
6
7
8
9
Public Sub FTPAppend(ByVal Host As String, ByVal Name As String, ByVal Pass As String, ByVal AddValue As String)
        Dim Request As FtpWebRequest = CType(WebRequest.Create(Host), FtpWebRequest)
        Request.Credentials = New NetworkCredential(Name, Pass)
        Request.Method = WebRequestMethods.Ftp.AppendFile
        Dim Buffer As Byte() = Encoding.UTF8.GetBytes(AddValue)
        Dim strRequest As Stream = Request.GetRequestStream
        strRequest.Write(Buffer, 0, Buffer.Length)
        strRequest.Close()
    End Sub
Тот же результат.
0
Заблокирован
23.08.2012, 19:58 6
VB.NET
1
Dim Buffer As Byte() = System.Text.Encoding.GetEncoding(1251).GetBytes(strFile.ReadToEnd)
- с такой кодировкой должно получится.

Добавлено через 6 минут
VB.NET
1
2
3
4
5
6
7
8
Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("host"), System.Net.FtpWebRequest)
        request.Credentials = New System.Net.NetworkCredential("login", "pass")
        request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
        Dim file() As Byte = System.IO.File.ReadAllBytes("filename")
        Dim strz As System.IO.Stream = request.GetRequestStream()
        strz.Write(file, 0, file.Length)
        strz.Close()
        strz.Dispose()
Попробуй так загружать
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 19:16  [ТС] 7
Release, ни первое, ни второе не помогло. Русские символы вообще не отображаются.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.08.2012, 19:20 8
Infuzo, просто ради интереса - нельзя ли посмотреть фотку с этими символами
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 19:29  [ТС] 9
Памирыч, вложение.
Миниатюры
Кодировка при загрузке файла на FTP сервер  
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.08.2012, 19:48 10
Infuzo, Этот ini-файл Вы залили на сервер.
А потом скачали его и там эта белиберда?
А то я не понял - в нотпаде какой именно файл открыт...
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 19:54  [ТС] 11
Памирыч, да, это "нужный" файл скачан самой программой с сервера. Если интересен код для скачивания, вот:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
Dim Request As FtpWebRequest = CType(WebRequest.Create(Host), FtpWebRequest)
        Request.Credentials = New NetworkCredential(Name, Pass)
        Request.Method = WebRequestMethods.Ftp.DownloadFile
        Dim Response As FtpWebResponse = CType(Request.GetResponse, FtpWebResponse)
        Dim strFile As Stream = Response.GetResponseStream
        Dim strRead As StreamReader = New StreamReader(strFile)
        Dim strWrite As StreamWriter = New StreamWriter(SavePath, False, Encoding.Unicode)
        strWrite.Write(strRead.ReadToEnd)
        strFile.Close()
        strRead.Close()
        strWrite.Close()
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.08.2012, 20:00 12
Infuzo, так у Вас может быть не при загрузке кодировка рушится, а именно при скачивании?
Тоталлом пробовали файл скачать, а не своей программой?
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 20:09  [ТС] 13
Памирыч, пробовал FileZilla. Он ничего не отображает, пустая строка. Сейчас тоталом попробую.

Добавлено через 5 минут
TC выдаёт строку с пробелом, и больше ничего.
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.08.2012, 20:34 14
Infuzo, вся беда в том, что Ваш код у меня не работает. Иначе я бы попытался найти косяк.
Для чего Вы наворотили столько кода в загрузке на сервер?
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 20:55  [ТС] 15
Памирыч, вы подключили System.Net, System.Text, System.IO?
0
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
24.08.2012, 21:24 16
Infuzo, конечно
Я даже нашел в инете шарповские коды и перевел на ВБ. Пришел к выводу, что с Юкозовским ФТП, как и с Народовским, какие-то нелады.

Я Вам все еще предлагаю заливать файлы по-человечески, одной строкой.

Добавлено через 2 минуты
Цитата Сообщение от Infuzo Посмотреть сообщение
VB.NET
1
Dim Buffer As Byte() = Encoding.Unicode.GetBytes(strFile.ReadToEnd)
Еще попробуйте заменить на
VB.NET
1
Dim Buffer As Byte() = Encoding.Default.GetBytes(strFile.ReadToEnd)
0
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 23
24.08.2012, 23:16  [ТС] 17
Памирыч, пробовал. Но я решил работать с HTTP сервером, там намного больше плюсов по сравнению с FTP.
0
24.08.2012, 23:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2012, 23:16
Помогаю со студенческими работами здесь

Не верная кодировка при отправке файла на FTP
Добрый день уважаемые гуру! Целый день бьюсь над задачкой, софтинка по отправке файла на FTP, имя...

Ошибка при загрузке файла с FTP-сервера
Привет всем! В моей программе есть функция проверки обновления и закачки его после запроса....

Ошибка при загрузке большого файла на ftp
Пытаюсь сделать FTP-клиент, но при загрузке файла(~300 Mb) возникает ошибка The underlying...

Неверная кодировка при загрузке файла в RichTextBox
Доброго времен суток, ув. форумчане! Я столкнулся со следующей проблемой: когда я считываю с файла...


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

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