亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? postfile.pas

?? autoupdate 1.02 source code
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
            WriteLine('Content-Disposition: form-data; name="userfile"; filename="' + FileName + '"');
            WriteLine('Content-Type: application/octet-stream');
            WriteLine('');
         end;

         Boundry := #13#10+'--'+Boundry+'--';

         BufferIn.dwStructSize := sizeof( INTERNET_BUFFERS );
         BufferIn.Next := nil;
         BufferIn.lpcszHeader := PChar(Header);
         BufferIn.dwHeadersLength := Length(Header);
         BufferIn.dwHeadersTotal := 1;
         BufferIn.lpvBuffer := nil;
         BufferIn.dwBufferLength := 0;
         BufferIn.dwBufferTotal := Length(Buffer) + Length(Boundry);// + SendFile.FileSize;
         if Assigned(SendFile) then
         begin
            BufferIn.dwBufferTotal := BufferIn.dwBufferTotal + SendFile.FileSize;
         end;
         BufferIn.dwOffsetLow := 0;
         BufferIn.dwOffsetHigh := 0;

         Prog.SetMessage('Sending Request...');
         //Debug('Postfile HttpSendRequestEx+');
{         if not HttpSendRequestEx(Request, @BufferIn, nil, HSR_INITIATE, 0) then
         begin
            Debug('Postfile HttpSendRequestEx*');
            raise InetException.Create('HttpSendRequest failed');
         end;}
         if not JHttpSendRequestEx(Request, @BufferIn, nil, HSR_INITIATE, 0) then
         begin
            Debug('Postfile HttpSendRequestEx*');
            if Options.GetAllowUnknownCA and (GetLastError = ERROR_INTERNET_INVALID_CA) then
            begin
               QueryLen := sizeof(Flags);

               JInternetQueryOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
                @Flags, QueryLen);

               Flags := Flags or SECURITY_FLAG_IGNORE_UNKNOWN_CA;
               JInternetSetOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
                                @Flags, Sizeof(Flags) );

               if not JHttpSendRequestEx(Request, @BufferIn, nil, HSR_INITIATE, 0) then
               begin
                  // big trouble this time...
                  raise InetException.Create('HttpSendRequest failed');
               end;

            end
            else
            begin
               raise InetException.Create('HttpSendRequest failed');
            end;
         end;
         //Debug('Postfile HttpSendRequestEx-');

         WriteString(Buffer);
         if Assigned(SendFile) then
         begin
            SendFileContents;
         end;
         WriteString(Boundry);
         //Debug('Postfile HttpEndRequest+');
         if not JHttpEndRequest(Request, nil, 0, 0) then
         begin
            Debug('Postfile HttpEndRequest*');
            raise InetException.Create('HttpEndRequest failed');
         end;
         //Debug('Postfile HttpEndRequest-');

         Prog.SetMessage('Downloading...');
         SetLength(QueryBuffer, 1024);
         QueryLen := Length(QueryBuffer);
         QueryIdx := 0;
         //Debug('Postfile HttpQueryInfo+');
         if JHttpQueryInfo(Request, HTTP_QUERY_CONTENT_LENGTH, PChar(QueryBuffer), QueryLen, QueryIdx) then
         begin
            //Debug('Postfile HttpQueryInfo-');
            SetLength(QueryBuffer, QueryLen);
            //Debug(QueryBuffer);
            Prog.setNoActions(StrToInt(QueryBuffer));
         end
         else
         begin
            Debug('Postfile HttpQueryInfo*');
            Debug('Error ' + IntToStr(GetLastError));
         end;


         ReadResult;
         Prog.SetMessage('Done');
      finally
         //Debug('Postfile InternetCloseHandle+');
         JInternetCloseHandle(Request);
         //Debug('Postfile InternetCloseHandle-');
      end;
   finally
      if Assigned(SendFile) then
      begin
         SendFile.Free;
      end;
      RecvFile.Free;
   end;
   Prog.phaseDone;
end;


var
   Character : array[0..61] of Char = ('a','b','c','d','e','f','g','h','i','j',
                                       'k','l','m','n','o','p','q','r','s','t',
                                       'u','v','w','x','y','z','A','B','C','D',
                                       'E','F','G','H','I','J','K','L','M','N',
                                       'O','P','Q','R','S','T','U','V','W','X',
                                       'Y','Z','1','2','3','4','5','6','7','8',
                                       '9','0');

function TPostFile.GenerateBoundryString : String;
var
   i : Integer;
   function GetChar : Char;
   begin
      Result := Character[Random(62)];
   end;
begin
   for i := 1 to 16 do
   begin
      Result := Result + GetChar;
   end;
   Result := 'POSTFILE' + Result + 'POSTFILE';
end;

procedure TPostFile.Post(Keys : TStringList; Values : TStringList; FileName : String; Results : TStringList);
var
   Request  : HINTERNET;
   Buffer   : String;
   SendFile : TBinaryFile;
   SentLength : DWORD;

   procedure WriteString(S : String);
   var
      Actual : DWORD;
   begin
      //Debug('Postfile InternetWriteFile+');
      if not JInternetWriteFile(Request, PChar(S), Length(S), Actual) then
      begin
         Debug('Postfile InternetWriteFile*');
         raise InetException.Create('InternetWriteFile failed');
      end;
      //Debug('Postfile InternetWriteFile-');
      if Int64(Actual) < Length(S) then
      begin
         Debug('Short write.  Len = ' + IntToStr(Length(S)) + ' Actual = ' + IntToStr(Actual));
      end;
      SentLength := SentLength + Actual;
      //Debug('Amount sent = ' + IntToStr(SentLength));
      Prog.SetPos(SentLength);
   end;

   procedure WriteLine(S : String);
   begin
      Buffer := Buffer + S + #13#10;
   end;

   procedure SendFileContents;
   var
      BytesRemaining : Int64;
      Buffer         : String;
   begin
     BytesRemaining := SendFile.FileSize;
      while BytesRemaining > 0 do
      begin
         if BytesRemaining < 1024 then
         begin
            SetLength(Buffer, BytesRemaining);
         end
         else
         begin
            SetLength(Buffer, 1024);
         end;

         SendFile.BlockRead2(PChar(Buffer), Length(Buffer));
         WriteString(Buffer);

         BytesRemaining := BytesRemaining - Length(Buffer);
      end;
   end;

   procedure ReadResult;
   var
      Actual : DWORD;
      Buffer : String;
      TempBuffer : String;
   begin
      while true do
      begin
         SetLength(Buffer, 1024);
         //Debug('Postfile InternetReadFile+');
         if not JInternetReadFile(Request, PChar(Buffer), Length(Buffer), Actual) then
         begin
            Debug('Postfile InternetReadFile*');
            raise InetException.Create('InternetReadFile failed');
         end;
         //Debug('Postfile InternetReadFile-');
         if Actual = 0 then
         begin
            break;
         end;
         SetLength(Buffer, Actual);
         TempBuffer := TempBuffer + Buffer;
      end;

      Results.Text := TempBuffer;
   end;

var
   Header   : String;
   Boundry  : String;
   Flags    : DWORD;
   BufferIn : INTERNET_BUFFERS;
   i : Integer;
   QueryLen : DWORD;
   Strength : DWORD;
begin
   Prog.setNoActions(0);

   if Connection = nil then
   begin
      Connect;
   end;
   Prog.SetMessage('Opening...');

   SendFile := nil;
   try
      if Length(FileName) > 0 then
      begin
         SendFile := TBinaryFile.Create;

         SendFile.Assign(FileName);
         SendFile.Open(OPEN_READ_ONLY);
      end;


      Flags := INTERNET_FLAG_NO_CACHE_WRITE;

      if UseHTTPS then
      begin
         Flags := Flags or INTERNET_FLAG_SECURE;
      end;

      if AllowWrongProperName then
      begin
         Flags := Flags or INTERNET_FLAG_IGNORE_CERT_CN_INVALID;
      end;

      if AllowExpiredCertificate then
      begin
         Flags := Flags or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID;
      end;

      //Debug('Postfile HttpOpenRequest+');
      Request := JHttpOpenRequest(Connection, 'POST', PChar(ScriptName), nil, nil, nil, Flags, 0);
      if Request = nil then
      begin
         Debug('Postfile HttpOpenRequest*');
         raise InetException.Create('HttpOpenRequest failed');
      end;
      //Debug('Postfile HttpOpenRequest-');

      try
         Boundry := GenerateBoundryString;

         Header := 'Content-Type: multipart/form-data; boundary=' + Boundry;

         for i := 0 to Keys.Count - 1 do
         begin
            WriteLine('--'+Boundry);
            WriteLine('Content-Disposition: form-data; name="' + Keys[i] + '"');
            WriteLine('');
            WriteLine(Values[i]);
         end;

         WriteLine('--'+Boundry);
         WriteLine('Content-Disposition: form-data; name="pramcount"');
         WriteLine('');
         WriteLine(IntToStr(Keys.Count));

         if Assigned(SendFile) then
         begin
            WriteLine('--'+Boundry);
            WriteLine('Content-Disposition: form-data; name="userfile"; filename="' + FileName + '"');
            WriteLine('Content-Type: application/octet-stream');
            WriteLine('');
         end;

         Boundry := #13#10+'--'+Boundry+'--';

         BufferIn.dwStructSize := sizeof( INTERNET_BUFFERS );
         BufferIn.Next := nil;
         BufferIn.lpcszHeader := PChar(Header);
         BufferIn.dwHeadersLength := Length(Header);
         BufferIn.dwHeadersTotal := 1;
         BufferIn.lpvBuffer := nil;
         BufferIn.dwBufferLength := 0;
         BufferIn.dwBufferTotal := Length(Buffer) + Length(Boundry);// + SendFile.FileSize;
         if Assigned(SendFile) then
         begin
            BufferIn.dwBufferTotal := BufferIn.dwBufferTotal + SendFile.FileSize;
         end;
         BufferIn.dwOffsetLow := 0;
         BufferIn.dwOffsetHigh := 0;

         //Debug('Total size to send : ' + IntToStr(BufferIn.dwBufferTotal));
         Prog.setNoActions(BufferIn.dwBufferTotal);

         if Assigned(SendFile) then
         begin
            Prog.SetMessage('Uploading...');
         end
         else
         begin
            Prog.SetMessage('Sending Request...');
         end;

         // The new IE or Win2K service pack allows us to set this flag now
         // in fact if we set it later it gets cleared again...
         if Options.GetAllowUnknownCA then
         begin
            QueryLen := sizeof(Flags);

            InternetQueryOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
             @Flags, QueryLen);

            Flags := Flags or SECURITY_FLAG_IGNORE_UNKNOWN_CA;
            InternetSetOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
                             @Flags, Sizeof(Flags) );
         end;


         //Debug('Postfile HttpSendRequestEx+');
         if not JHttpSendRequestEx(Request, @BufferIn, nil, HSR_INITIATE, 0) then
         begin
            Debug('Postfile HttpSendRequestEx*');
            if Options.GetAllowUnknownCA and (GetLastError = ERROR_INTERNET_INVALID_CA) then
            begin
               QueryLen := sizeof(Flags);

               JInternetQueryOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
                @Flags, QueryLen);

               Flags := Flags or SECURITY_FLAG_IGNORE_UNKNOWN_CA;
               JInternetSetOption (Request, INTERNET_OPTION_SECURITY_FLAGS,
                                @Flags, Sizeof(Flags) );

// do we need to write the data again???

               if not JHttpSendRequestEx(Request, @BufferIn, nil, HSR_INITIATE, 0) then
               begin
                  // big trouble this time...
                  raise InetException.Create('HttpSendRequest failed');
               end;

               // the https was a success but the script was not for some reason
               // we need to say try again, again...
               raise InetException.Create('HttpSendRequest failed');
            end
            else
            begin
               raise InetException.Create('HttpSendRequest failed');
            end;
         end;
         //Debug('Postfile HttpSendRequestEx-');

         WriteString(Buffer);
         if Assigned(SendFile) then
         begin
            SendFileContents;
         end;
         WriteString(Boundry);
         //Debug('Postfile HttpEndRequest+');
         if not JHttpEndRequest(Request, nil, 0, 0) then
         begin
            Debug('Postfile HttpEndRequest*');


            raise InetException.Create('HttpEndRequest failed');
         end;
         //Debug('Postfile HttpEndRequest-');
         Prog.SetMessage('Reading Response...');

         // find out the ssl key size

         QueryLen := sizeof(Strength);
         //Debug('Postfile InternetQueryOption+');
         if JInternetQueryOption(Request, INTERNET_OPTION_SECURITY_FLAGS, @Strength, QueryLen) then
         begin
            //Debug('Postfile InternetQueryOption-');
            Options.setSSLStrength(Strength);
         end
         else
         begin
            Debug('Postfile InternetQueryOption*');
            Debug('Error getting INTERNET_OPTION_SECURITY_FLAGS');
         end;

         ReadResult;
         Prog.SetMessage('Done');
      finally
         //Debug('Postfile InternetCloseHandle+');
         JInternetCloseHandle(Request);
         //Debug('Postfile InternetCloseHandle-');
      end;
   finally
      if Assigned(SendFile) then
      begin
         SendFile.Free;
      end;
   end;
   Prog.phaseDone;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩日日夜夜| 欧美精品第一页| 日韩电影在线一区| 国产欧美精品一区二区色综合| 色老汉一区二区三区| 国产一区二区三区免费在线观看| 亚洲影视在线播放| 亚洲国产精品精华液ab| 日韩欧美国产午夜精品| 欧美丝袜丝交足nylons| av电影天堂一区二区在线观看| 久久电影网站中文字幕| 亚洲成av人片一区二区梦乃 | jlzzjlzz亚洲日本少妇| 日韩专区一卡二卡| 中文字幕一区二区三| 久久久久久久一区| 日韩欧美的一区二区| 欧美丝袜丝nylons| 91免费视频大全| 国产91丝袜在线观看| 日本精品一级二级| 99在线精品视频| 国产成人在线色| 久久99精品国产| 免播放器亚洲一区| 日韩精品午夜视频| 亚洲电影一区二区三区| 亚洲精品水蜜桃| √…a在线天堂一区| 中文一区在线播放| 国产日本欧美一区二区| 久久一区二区视频| 精品久久久久久无| 精品久久久久久无| 久久久亚洲精华液精华液精华液| 日韩视频免费观看高清在线视频| 56国语精品自产拍在线观看| 欧美日韩激情一区| 欧美日本免费一区二区三区| 欧美专区亚洲专区| 欧美三级午夜理伦三级中视频| 在线免费观看成人短视频| 色一情一伦一子一伦一区| 99精品国产视频| 91黄色免费版| 欧美三级韩国三级日本三斤| 欧美日韩精品一区二区三区| 69精品人人人人| 日韩免费一区二区三区在线播放| 欧美大度的电影原声| 日韩情涩欧美日韩视频| 精品99一区二区三区| 国产日韩在线不卡| 日韩理论片在线| 亚洲自拍偷拍av| 日本中文字幕一区二区视频| 麻豆91在线观看| 26uuu国产电影一区二区| 精品日韩在线观看| 久久久久久久综合日本| 中国色在线观看另类| 亚洲欧美色综合| 爽好多水快深点欧美视频| 久国产精品韩国三级视频| 高清不卡在线观看av| 色噜噜夜夜夜综合网| 91.xcao| 精品国产一区二区国模嫣然| 国产精品色婷婷久久58| 亚洲自拍另类综合| 精彩视频一区二区三区| av成人老司机| 欧美日韩mp4| 国产女同性恋一区二区| 亚洲综合在线视频| 乱一区二区av| 91蝌蚪porny| 日韩一区二区精品葵司在线| 国产欧美一区二区精品性色 | 久久精品国产一区二区| 国产一区二区三区免费在线观看| 97精品久久久午夜一区二区三区| 欧美日韩你懂得| 久久天天做天天爱综合色| 中文字幕一区二区三区蜜月| 日韩激情一二三区| 丁香五精品蜜臀久久久久99网站| 91福利社在线观看| 久久天天做天天爱综合色| 一区二区三区蜜桃网| 国产精品一区在线观看乱码| 91成人国产精品| 国产人久久人人人人爽| 日韩精品免费专区| jizz一区二区| 精品国产一区二区三区久久影院 | 亚洲精品欧美激情| 韩日精品视频一区| 欧美日韩精品专区| 1区2区3区欧美| 精品一区二区国语对白| 一本到不卡免费一区二区| 精品国产成人在线影院| 亚洲国产日产av| 99精品国产99久久久久久白柏| 日韩久久免费av| 日韩极品在线观看| 在线亚洲一区二区| 中文字幕一区二区三区四区不卡| 国产在线麻豆精品观看| 欧美一区国产二区| 亚洲一区在线观看视频| 菠萝蜜视频在线观看一区| 精品国偷自产国产一区| 亚洲成va人在线观看| 一本久久a久久免费精品不卡| 国产女人水真多18毛片18精品视频| 男男成人高潮片免费网站| 欧美日韩在线亚洲一区蜜芽| 亚洲天堂a在线| 成人午夜电影久久影院| 久久久久国产精品厨房| 久久国产成人午夜av影院| 538prom精品视频线放| 亚洲午夜av在线| 欧美做爰猛烈大尺度电影无法无天| 亚洲欧洲一区二区三区| 成人黄色国产精品网站大全在线免费观看| 精品日韩av一区二区| 蜜臀av一区二区在线观看| 欧美日本一道本| 婷婷久久综合九色国产成人| 欧美午夜精品久久久| 亚洲精品菠萝久久久久久久| 91丨九色丨尤物| 亚洲精品写真福利| 91国偷自产一区二区三区成为亚洲经典| 国产精品欧美精品| 99国产一区二区三精品乱码| 中文字幕欧美一| 色悠悠亚洲一区二区| 亚洲精品视频在线| 欧美在线一二三| 午夜欧美2019年伦理| 欧美一区午夜精品| 久久www免费人成看片高清| 精品女同一区二区| 国产电影一区在线| 亚洲欧美综合网| 91精品1区2区| 日本欧洲一区二区| 精品国产1区二区| 成人天堂资源www在线| 国产精品成人免费| 欧美午夜在线一二页| 日韩国产欧美视频| 久久综合九色综合欧美亚洲| 国产精品一区二区无线| 国产精品网友自拍| 欧美性做爰猛烈叫床潮| 免费高清不卡av| xfplay精品久久| 99re这里都是精品| 日韩福利电影在线| 国产婷婷色一区二区三区四区| 9l国产精品久久久久麻豆| 香蕉成人啪国产精品视频综合网| 日韩三级精品电影久久久| 国产99一区视频免费| 亚洲欧美一区二区三区极速播放| 欧美这里有精品| 国产在线精品免费av| 亚洲色图视频网站| 日韩一区二区三区免费看| 国产精品一区二区91| 亚洲综合在线电影| 久久综合久久鬼色中文字| 色综合中文字幕| 精品一二线国产| 一区二区三区国产精品| 精品国产乱码久久久久久夜甘婷婷| 不卡av电影在线播放| 日本不卡视频在线| 日韩美女啊v在线免费观看| 欧美一级午夜免费电影| 成人av在线播放网站| 视频一区欧美精品| 中文字幕在线一区免费| 9191久久久久久久久久久| 成人app软件下载大全免费| 日本女优在线视频一区二区| 国产精品三级av在线播放| 欧美一区二区视频在线观看| aaa欧美色吧激情视频| 捆绑变态av一区二区三区| 一区二区高清免费观看影视大全| 久久精品一区四区| 91精品福利在线一区二区三区| 一本到不卡精品视频在线观看|