• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            本來打算使用QFtp,居然上傳不成功

            #include <stdio.h>
            #include <string.h>
            #include <curl/curl.h>
            #include <sys/types.h>
            #include <sys/stat.h>
            #include <fcntl.h>
            #include <errno.h>
            #ifdef WIN32
            #include <io.h>
            #else
            #include <unistd.h>
            #endif

            #define REMOTE_URL      "sftp://account:password@xx.xx.xx.xx/"

            static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
            {
                curl_off_t nread;
                size_t retcode = fread(ptr, size, nmemb, stream);
                nread = (curl_off_t)retcode;
                fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T " bytes from file\n", nread);
                return retcode;
            }

            int main(int argc,char *argv[])
            {
                if(argc != 3)
                {
                    printf("2 paramenters is needed.\n");
                    return -1;
                
            }

                char* local_file = argv[1];
                char* remote_file = argv[2];

                printf("call me for update -:%s,%s\n",local_file,remote_file);

                char remoteurl[1024] = 
            {0};
                strcpy(remoteurl,REMOTE_URL);
                strcat(remoteurl,remote_file);

                CURL* curl;
                CURLcode res;
                FILE* file;
                struct stat file_info;
                curl_off_t fsize;

                if(stat(local_file,&file_info))
                
            {
                    printf("couldnt open '%s'
            : %s\n", local_file, strerror(errno));
                    return 1;
                
            }

                fsize = (curl_off_t)file_info.st_size;
                printf("Local file size: %" CURL_FORMAT_CURL_OFF_T " bytes.\n", fsize);

                file = fopen(local_file, "rb");
                curl_global_init(CURL_GLOBAL_ALL);

                curl = curl_easy_init();

                if(curl)
                
            {
                    curl_easy_setopt(curl,CURLOPT_READFUNCTION,read_callback);
                    curl_easy_setopt(curl,CURLOPT_UPLOAD,1L);
                    curl_easy_setopt(curl,CURLOPT_URL,remoteurl);
                    curl_easy_setopt(curl,CURLOPT_READDATA,file);
                    curl_easy_setopt(curl,CURLOPT_INFILESIZE_LARGE,(curl_off_t)fsize);
                    curl_easy_setopt(curl,CURLOPT_FTP_RESPONSE_TIMEOUT,120);
                    res = curl_easy_perform(curl);
                    if(res != CURLE_OK)
                        fprintf(stderr,"curl_easy_perform() failed
            : %s\n",curl_easy_strerror(res));
                    curl_easy_cleanup(curl);
                    fprintf(stderr,"finished update.");
                
            }

                fclose(file);
                curl_global_cleanup();
                return 0;
            }

            以上代碼經過實際測試.
            posted on 2015-08-31 17:21 ccsdu2009 閱讀(2157) 評論(0)  編輯 收藏 引用 所屬分類: 雜項編程基礎
             
            久久青草国产手机看片福利盒子| 伊人丁香狠狠色综合久久| 亚洲&#228;v永久无码精品天堂久久 | 99国产欧美久久久精品蜜芽| 77777亚洲午夜久久多喷| 国产精自产拍久久久久久蜜| 少妇无套内谢久久久久| 国内精品久久久久| 中文字幕精品久久| 久久夜色精品国产亚洲| 久久久久se色偷偷亚洲精品av| 精品九九久久国内精品| 偷偷做久久久久网站| 久久精品国产福利国产琪琪| 精品无码久久久久国产| 中文字幕久久亚洲一区| 亚洲精品国产成人99久久| 久久久一本精品99久久精品66| 亚洲精品成人久久久| 国产亚洲精久久久久久无码AV| 国内精品久久久久影院日本| 久久伊人精品一区二区三区| 久久AⅤ人妻少妇嫩草影院| 国产精品久久成人影院| 亚洲va国产va天堂va久久| 日本国产精品久久| 国产成人精品久久一区二区三区av | 久久久久亚洲AV无码网站| 久久亚洲sm情趣捆绑调教| 天天影视色香欲综合久久| 久久激情五月丁香伊人| 精品一久久香蕉国产线看播放 | 国产精品99久久精品爆乳| 久久精品免费一区二区三区| 精品久久久久久久无码| 久久超碰97人人做人人爱| 一本色综合网久久| 久久久久久国产精品无码超碰| 亚洲国产精品无码久久一区二区 | 国产精品久久久久久久久免费| 99精品久久精品一区二区|