Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.01.2016, 09:28
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
Вопрос Снимок экрана отправить по сети не сохраняя на диск

Доброго времени суток, уважаемые.
Обращаюсь к Вам за подсказкой (HELP)
Необходимо отправить снимок экрана на сайт, но при этом полученное изображение на диске компьютера сохранять не нужно. Мысли меня наводят на - JpegStream:=TMemoryStream.Create; Но вот что делать дальше???
Код:
uses Jpeg;
procedure TForm1.PrintScreen;
const
 URL  : String = 'http://xxxxxx.xx/xxx.php';
var 
 bm: TBitMap;
 JpegIm: TJpegImage;
 ImgName: String;
 //JpegStream : TMemoryStream;
begin
  ImgName := 'skrin.jpg';
  bm := TBitMap.Create;
  bm.Width := Screen.Width;
  bm.Height := Screen.Height;
  BitBlt(bm.Canvas.Handle, 0, 0, bm.Width, bm.Height, GetDC(0), 0, 0, SRCCOPY);
  JpegIm := TJpegImage.Create;
  JpegIm.Assign(bm);
  JpegIm.CompressionQuality := 95; // от 0 до 100 качество
  JpegIm.Compress;
  //JpegIm.SaveToFile(ImgName);
  bm.Destroy; 
  JpegIm.Destroy;
end;

Последний раз редактировалось kyran29, 07.01.2016 в 20:09.
Ответить с цитированием
  #2  
Старый 07.01.2016, 11:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

use Write(), Luke
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 07.01.2016, 16:00
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

NumLock можно по-подробнее - use Write(), Luke
Ответить с цитированием
  #4  
Старый 07.01.2016, 18:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, тут надо знать в каком виде сервер ожидает данные.
Т.к. url не приведен, то могу только гадать.
Вот посмотри на похожие вопросы (не совсем то, но принцип должен быть тот же):
http://stackoverflow.com/questions/2...-not-the-usual
http://stackoverflow.com/questions/1...rough-sendgrid
Ответить с цитированием
  #5  
Старый 07.01.2016, 20:00
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, тут надо знать в каком виде сервер ожидает данные.
Т.к. url не приведен, то могу только гадать.
Вот посмотри на похожие вопросы (не совсем то, но принцип должен быть тот же):
http://stackoverflow.com/questions/2...-not-the-usual
http://stackoverflow.com/questions/1...rough-sendgrid
Вот в таком виде сервер ожидат данные
PHP код:
if (!empty($_POST['data'])) 
Ответить с цитированием
  #6  
Старый 07.01.2016, 20:10
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
use Write(), Luke
Ответить с цитированием
  #7  
Старый 07.01.2016, 20:31
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, тут надо знать в каком виде сервер ожидает данные.
Т.к. url не приведен, то могу только гадать.
Вот посмотри на похожие вопросы (не совсем то, но принцип должен быть тот же):
http://stackoverflow.com/questions/2...-not-the-usual
http://stackoverflow.com/questions/1...rough-sendgrid
Сервер может и так принять изображение
PHP код:
// Проверяем загружен ли файл
   
if(is_uploaded_file($_FILES["filename"]["tmp_name"])) 
Ответить с цитированием
  #8  
Старый 08.01.2016, 18:43
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

В дельфовом HTTP-компоненте, пост-запрос принимает поток байт, просто его туда отправь и всё.

Luke.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 08.01.2016, 19:17
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
В дельфовом HTTP-компоненте, пост-запрос принимает поток байт, просто его туда отправь и всё.

Luke.
я правильно понял:
Код:
  JpegStream := TMemoryStream.Create;
  JpegIm.SaveToStream(JpegStream);
  Form1.IdHTTP1.Post(URL, JpegStream);
  JpegStream.Free;

Последний раз редактировалось kyran29, 08.01.2016 в 20:19.
Ответить с цитированием
  #10  
Старый 08.01.2016, 20:57
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Агась.

Только байтовый поток перед отправкой в начало перемотай. Ну и про try finally не стоит забывать.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
kyran29 (11.01.2016)
  #11  
Старый 08.01.2016, 21:05
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Агась.

Только байтовый поток перед отправкой в начало перемотай. Ну и про try finally не стоит забывать.

Блин можешь пример
Ответить с цитированием
  #12  
Старый 09.01.2016, 11:08
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
JpegStream.Position := 0
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
kyran29 (11.01.2016)
  #13  
Старый 11.01.2016, 21:30
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
JpegStream.Position := 0
M.A.D.M.A.N. - спасибо тебе.
Пришлось добавить еще одну переменную
Код:
var FormData:TIdMultiPartFormDataStream;

ну вот так все нормально, файл отправляется,
если есть ошибки try инструкции прошу поправить

Код:
  FormData:=TIdMultiPartFormDataStream.Create;
 try
  Form1.idHTTP1:=TIdHTTP.Create(nil);
  FormData.AddObject('file', 'image/jpeg', JpegStream, 'name.jpg');
  Form1.IdHTTP1.Post(URL, FormData);
 finally
  FreeAndNil(FormData);
  JpegStream.Free;
  bm.Destroy;
  JpegIm.Free;
  Form1.IdHTTP1.Free;
Ответить с цитированием
  #14  
Старый 11.01.2016, 21:56
kyran29 kyran29 вне форума
Прохожий
 
Регистрация: 03.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от kyran29
Сервер может и так принять изображение
PHP код:
// Проверяем загружен ли файл
   
if(is_uploaded_file($_FILES["filename"]["tmp_name"])) 


принимаем файл на сервере так:
PHP код:
$img $_SERVER['DOCUMENT_ROOT'].'/image/'.time().'.jpg';
 
// Проверяем загружен ли файл
 
if (isset( $_FILES['file'])){
   if (
$_FILES['file']['type'] == 'image/jpeg'move_uploaded_file($_FILES['file']['tmp_name'], $img);  
 } 

Последний раз редактировалось kyran29, 11.01.2016 в 22:42.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:26.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter