• <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 閱讀(2164) 評論(0)  編輯 收藏 引用 所屬分類: 雜項編程基礎
             
            国产毛片欧美毛片久久久| 久久久久亚洲av无码专区| 久久精品视频网| 国产精品久久久久久影院| 久久精品亚洲一区二区三区浴池 | 免费精品久久久久久中文字幕| 久久电影网一区| 精品乱码久久久久久久| 日本强好片久久久久久AAA| 午夜精品久久久久久久无码| 伊人久久大香线蕉综合网站| 国产精品美女久久福利网站| 中文字幕人妻色偷偷久久 | 欧美精品一区二区精品久久| 1000部精品久久久久久久久| 99久久国语露脸精品国产| .精品久久久麻豆国产精品| 26uuu久久五月天| 久久AAAA片一区二区| 久久人人爽人人爽人人片AV麻豆| 久久伊人影视| 亚洲精品无码久久久久久| 蜜臀久久99精品久久久久久小说 | 国产精品久久久久久久久久影院| 亚洲精品97久久中文字幕无码| 色天使久久综合网天天| 久久天天躁狠狠躁夜夜2020一| 久久国产精品99国产精| 色噜噜狠狠先锋影音久久| 久久天天日天天操综合伊人av| 久久国产精品无码一区二区三区| 亚洲乱亚洲乱淫久久| 久久综合色区| 人妻精品久久久久中文字幕69| 精品久久久久久无码中文字幕 | 久久久久亚洲AV无码专区桃色| 亚洲欧洲久久av| 人妻精品久久久久中文字幕一冢本| 国产精品免费看久久久香蕉| 综合久久一区二区三区 | 国产精品成人无码久久久久久|