![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Нужна помощь! 
		
	
		
		
		
		
		
	
		
		
	
	
	Перечитал все компоненты VCL, но они не работают к сожалению в Framework, поэтому задам основу вопроса: как, с помощью каких компонентов, пример исходного кода, закачать файл в fs: FileStream c URL "http:\\server.net\1.png"?  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код: 
	uses WinInet;
function TWinForm2.GetInetFile (const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: Cardinal;
  f: FileStream;
  sAppName: String;
begin
  Result:=False;
  sAppName := ExtractFileName(Application.ExecutablePath);
  hSession:=InternetOpen(sAppName, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession, fileURL, nil, 0, 0, 0);
    try
      f:=FileStream.Create(t2.Text,FileMode.CreateNew,FileAccess.Write);
      repeat
        InternetReadFile(hURL, Buffer, SizeOf(Buffer), BufferLen);
        f.Write(Buffer,0,BufferLen);
      until BufferLen = 0;
      MessageBox.Show(f.Length.ToString+' байтов');
      f.Close;
      Result:=True;
    finally
      InternetCloseHandle(hURL)
    end
  finally
    InternetCloseHandle(hSession)
  end
end;Последний раз редактировалось Admin, 20.08.2008 в 18:17.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Фрагмент из моей проги 
		
	
		
		
		
		
		
		
			Код: 
	uses WinInet, ...
    var fileURL: string; FileName: String;
    const BufferSize = 1024;
    var
      hSession, hURL,db: HInternet;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen: Cardinal;
      fs: FileStream;
      sAppName: String;
function DownLoad.DownloadNow (const fileURL, FileName: String): boolean;
var l: int64;
    head:String;
    FileSize: string;
    dwBufferLen, dwIndex: Cardinal;
    i: integer;
begin
  Result:=False;
  hSession:=InternetOpen(sAppName, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession, fileURL, nil, 0, 0, 0);
    try
      fs:=FileStream.Create(FileName,FileMode.CreateNew,FileAccess.Write);
      repeat
        InternetReadFile(hURL, Buffer, SizeOf(Buffer), BufferLen);
          end;  
        fs.Write(Buffer,0,BufferLen);
      until BufferLen = 0;
      fs.Close;
      Result:=True;
    finally
      InternetCloseHandle(hURL)
    end
  finally
    InternetCloseHandle(hSession)
  end;
end;Последний раз редактировалось Admin, 10.09.2008 в 20:57.  |