Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
8 / 8 / 0
Регистрация: 19.06.2011
Сообщений: 82

Передача на FTP

10.07.2011, 17:56. Показов 3042. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно скопировать н-ный фаил ну например путь до этого файла С://бла.тхт и отправить его на фтп. Как это сделать?

Добавлено через 15 часов 42 минуты
кто нибудь мне поможет?

Добавлено через 56 минут
переделайте этот код под то что мне нужно плиз
C++
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
// Сначала просимся в Интернет
    HINTERNET hInternetFile = 0;
    HINTERNET hInternet = InternetOpen (TEXT("YOUR_PROGRAM_NAME"), // <- Имя программы, которой выходите в инет...
                                                                   // Можите написать Ослика IE
                         INTERNET_OPEN_TYPE_DIRECT,
                         NULL, 0, 0);
 
    if (!hInternet)
    {
        MessageBox(0,"Connect to internet, plzzz","Error",MB_ICONSTOP);
        return 0;
    }
 
    // Коннектимся к серваку
    hInternetFile = InternetConnect(hInternet,
                         YOUR_FTP_HERE,                // <- FTP Адрес
                         INTERNET_DEFAULT_FTP_PORT,    // <- FTP порт
                         LOGIN,                        // <- Логин
                         PASSWORD,                     // <- Пароль
                         INTERNET_SERVICE_FTP,
                         0,
                         (DWORD)0);
 
    char sz[] = "Этот текст будет на FTP";
    DWORD d;
    
    if(hInternetFile)
    {
        // Открываем СУЩЕСТВУЮЩИЙ файл
        hInternetFile = FtpOpenFile(hInternetFile,
                    "/web/downloads/somefile.txt", // Папка + имя файла, в которую закачиваем
                    GENERIC_WRITE,
                    FTP_TRANSFER_TYPE_BINARY,
                    INTERNET_FLAG_RELOAD);
 
 
        if(!hInternetFile)
        {
            MessageBox(0,"Can't open the file",0,MB_ICONSTROP);
        }
        else
        {
            // Записываем файл
            if (InternetWriteFile(hInternetFile,sz,strlen(sz),&d) && d == strlen(sz))
                MessageBox(0,"All is allright","OK",MB_ICONINFORMATION);
            else
                MessageBox(0,"Can't write the file",0,MB_ICONSTROP);
        }
 
    }
    else
        MessageBox(0,"Can't connect to server",0,MB_ICONSTOP);
    
 
    InternetCloseHandle(hInternetFile);

Цитата Сообщение от rif009 Посмотреть сообщение
// Коннектимся к серваку hInternetFile = InternetConnect(hInternet, YOUR_FTP_HERE, // <- FTP Адрес INTERNET_DEFAULT_FTP_PORT, // <- FTP порт LOGIN, // <- Логин PASSWORD, // <- Пароль INTERNET_SERVICE_FTP, 0, (DWORD)0);
вот тут я поменяю на textbox'сы


Цитата Сообщение от rif009 Посмотреть сообщение
char sz[] = "Этот текст будет на FTP"; DWORD d;
сделайте плиз так чтоб вместо этого код открывал N-ый.txt и его содержимое записывал
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2011, 17:56
Ответы с готовыми решениями:

Передача файла на FTP
Пишу небольшой скрипт для синхронизации с своим FTP, и застрял на передачи файла. import os from ftplib import FTP #...

FTP передача файла
IdFTP1.Host:='****'; IdFTP1.Username := '***'; IdFTP1.Password := '****'; IdFTP1.Port := 21; IdFTP1.Connect; ...

Передача файлов по FTP
Я написал скрипт для передачи файлов по ftp: @echo off :res set addr=script echo.open хост&gt; %ADDR% echo.логин&gt;&gt; %ADDR% ...

1
 Аватар для igorrr37
2895 / 2042 / 992
Регистрация: 21.12.2010
Сообщений: 3,791
Записей в блоге: 9
22.07.2011, 11:39
вот код на скачивание файла, на заливку должно быть по аналогии
C++
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
#include <iostream>
#include <windows.h>
#include <algorithm>
#include <string>
#include <fstream>
#include <boost/asio.hpp>
#include <boost/regex.hpp>
#include <boost/lexical_cast.hpp>
typedef boost::asio::ip::tcp tcp;
 
boost::asio::streambuf reqBuf;
std::ostream reqStream(&reqBuf);
boost::asio::streambuf* pRespBuf=new boost::asio::streambuf();
std::istream respStream(pRespBuf);
boost::asio::io_service io;
boost::system::error_code err;
tcp::socket sock(io), tmpSock(io);
boost::cmatch regRes;
boost::regex reg(".+\\((\\d+,\\d+,\\d+,\\d+),(\\d+),(\\d+)\\).*\r\n");
 
void SendRequest(std::string s){
    reqStream<<s<<"\r\n";
    boost::asio::write(sock, reqBuf);
}
 
void PrintResponse(){
    boost::asio::read_until(sock, *pRespBuf, "\r\n");
    (std::cout<<pRespBuf).clear();
}
 
void ConnectTmp(){
    char buf[512]={'\0'};
    boost::asio::read(sock, boost::asio::buffer(buf, sizeof(buf)), boost::asio::transfer_at_least(1));
    std::cout<<"buf= "<<buf<<"\n";
    unsigned short port;
    if(!boost::regex_match(buf, regRes, reg)){
        std::cerr<<"regex_match() failed\n";
        return;
    }
    std::string ip(regRes[1]);
    std::replace(ip.begin(), ip.end(), ',', '.');
    std::cout<<"ip= "<<ip<<"\n";
    port=boost::lexical_cast<unsigned short>(regRes[2])*256+boost::lexical_cast<unsigned short>(regRes[3]);
    std::cout<<"port= "<<port<<"\n";
    tmpSock.connect(tcp::endpoint(boost::asio::ip::address::from_string(ip), port), err);
    if (err){
        std::cerr<<"tmpSock.connect() failed:\n"<<err.message()<<"\n";
        return;
    }
    else std::cout<<"tmpSock.connect() OK: "<<tmpSock.remote_endpoint().address().to_string()<<"\n";
}
 
void PrintTmpResponse(){
    char buf[4096]={'\0'};
    boost::asio::read(tmpSock, boost::asio::buffer(buf, sizeof(buf)), boost::asio::transfer_at_least(1));
    std::cout<<buf<<"\n";
    tmpSock.shutdown(tcp::socket::shutdown_both);
    tmpSock.close();
}
 
void SaveFile(const std::string& fileName){
    std::cout<<"SaveFile called\n";
    std::ofstream ofs(fileName.c_str(), std::ios::binary);
    char buf[4096];
    std::size_t len, sum=0;
    do{
        len=boost::asio::read(tmpSock, boost::asio::buffer(buf, sizeof(buf)), boost::asio::transfer_all(), err);
        sum+=len;
        ofs.write(buf, len);
    }while(!err);
    std::cout<<"sum= "<<sum<<"\n";
    if(err!=boost::asio::error::eof){
        std::cerr<<"read() failed\n";
    }
    ofs.close();
    tmpSock.shutdown(tcp::socket::shutdown_both);
    tmpSock.close();
}
 
int main(){
    SetConsoleOutputCP(1251);
    try{
        tcp::resolver resolver(io);
        tcp::resolver::query q("driver.jmicron.com.tw", "ftp");
        tcp::resolver::iterator it = resolver.resolve(q, err), itEnd;
        if (err){
            std::cerr<<"resolve() failed:\n"<<err.message()<<"\n";
            return __LINE__;
        }
        else std::cout<<"resolve() OK\n";
        err = boost::asio::error::host_not_found;
        while (err && it != itEnd){
            sock.close();
            sock.connect(*it++, err);
        }
        if (err){
            std::cerr<<"connect() failed:\n"<<err.message()<<"\n";
            return __LINE__;
        }
        else std::cout<<"connect() OK: "<<sock.remote_endpoint().address().to_string()<<"\n";
        PrintResponse();
        SendRequest("user ftp");
        PrintResponse();
        SendRequest("pass [email]igorrr37@spam.la[/email]");
        PrintResponse();
        SendRequest("cwd Ethernet/Linux");
        PrintResponse();
        SendRequest("pasv");
        ConnectTmp();
        SendRequest("list");
        PrintResponse();
        PrintTmpResponse();
        PrintResponse();
        SendRequest("pasv");
        ConnectTmp();
        SendRequest("retr jmebp-1.0.8.1.tar.bz2");
        PrintResponse();
        SaveFile("jmebp-1.0.8.1.tar.bz2");
        PrintResponse();
        SendRequest("quit");
        PrintResponse();
        delete pRespBuf;
        pRespBuf=NULL;
        sock.shutdown(tcp::socket::shutdown_both);
        sock.close();
    }
    catch(std::exception& e){
        std::cerr<<"Thrown exception:\n"<<e.what()<<"\n";
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.07.2011, 11:39
Помогаю со студенческими работами здесь

Передача данных по FTP
Подскажите, как можна передать данные на ФТП-сервер, используя возможности С#?

Передача данных с ftp
Может кто-то чем поможет... В определённой папке на ftp-сервере находятся данные (jpg). Внутри папки подпапки по месяцам, а в этих...

ftp передача файла
Научил железку программируемую на Basic ходить на фтп, кидать файлы, но, на одном фтп все ок, а на другом, при окончании передачи файла, он...

Передача файлов по FTP
Все привет. Код соединения и передачи файла на FTP-сервер IdFTP1-&gt;Host = &quot;хост фтп&quot;; IdFTP1-&gt;Username = &quot;Логин&quot;; ...

Передача файла по ftp
Помогите реализовать передачу файлов по ftp. Набросал такой код, но ничего не выходит, может ошибся в чем-то. Может надо как то по-другому...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru