• <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)  編輯 收藏 引用 所屬分類: 雜項編程基礎
             
            久久久久久亚洲精品不卡 | 久久久久99精品成人片试看 | 久久婷婷五月综合97色直播| 一本久久a久久精品亚洲| 久久精品国产99国产精品澳门| 国产精品欧美久久久久天天影视| 日本精品一区二区久久久| 久久精品中文騷妇女内射| 国产成人精品久久免费动漫| 亚洲精品无码久久不卡| 国产成人精品久久免费动漫| 精品国产青草久久久久福利| 狠狠色丁香婷婷综合久久来来去| 色综合久久无码五十路人妻 | 天堂久久天堂AV色综合| 精品人妻伦九区久久AAA片69| 成人久久免费网站| 亚洲精品WWW久久久久久| 国产精品一久久香蕉国产线看| 一本久久a久久精品综合香蕉| 精品免费tv久久久久久久| 无码精品久久久久久人妻中字| 四虎久久影院| 久久久久久久综合日本| 国产精品久久久久久影院| 中文字幕人妻色偷偷久久| 怡红院日本一道日本久久 | 久久久久波多野结衣高潮| 精品久久人人做人人爽综合| 久久久久免费精品国产| 国产精品99久久99久久久| 91精品国产9l久久久久| 久久精品无码午夜福利理论片 | av无码久久久久不卡免费网站| 偷偷做久久久久网站| 国产精品美女久久福利网站| 一本色综合久久| 久久亚洲精品无码aⅴ大香| 久久久久亚洲AV片无码下载蜜桃| 亚洲精品无码久久毛片| 亚洲伊人久久精品影院|