Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 18:09   #11
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Добавил в вашем коде скобки :
Код:
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])){
Без этого ругался на восклицательный знак.

После этого ответ был:
Код:
Файл "не залился
Illusiony вне форума Ответить с цитированием
Старый 08.06.2015, 19:02   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот и причина выяснилась )
Файл на сервер не пришел, или точнее путь $_FILES['userfile']['tmp_name'] пустой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.06.2015, 19:18   #13
Forser
Новичок
Джуниор
 
Регистрация: 08.06.2015
Сообщений: 2
По умолчанию

Люди! Увы ни Avas!, ни другой какой либо антивирус не перестанет отлавливать ваше ПО как вредоносное пока вы его не опубликуете и работники не соизволят его проверить. А пока кладите его в белый список.
Forser вне форума Ответить с цитированием
Старый 08.06.2015, 20:43   #14
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну вот и причина выяснилась )
Файл на сервер не пришел, или точнее путь $_FILES['userfile']['tmp_name'] пустой.
И что с этим делать? Как его сделать не пустым?

Цитата:
Сообщение от Forser Посмотреть сообщение
Люди! Увы ни Avas!, ни другой какой либо антивирус не перестанет отлавливать ваше ПО как вредоносное пока вы его не опубликуете и работники не соизволят его проверить. А пока кладите его в белый список.
Славо богу на последнюю програмку не ругается.

Последний раз редактировалось Аватар; 08.06.2015 в 21:28.
Illusiony вне форума Ответить с цитированием
Старый 08.06.2015, 21:30   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Славо богу на последнюю програмку не ругается.
Не обольщайся, паранойя она такая, какой-нибудь NOD32 заругается, или другой
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 22:41   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как его сделать не пустым?
Ну для начала нужно понять почему код отправления не согласован по параметрам с кодом получения )
Пересмотри свои коды - все ли ты параметры правильно передаешь в POST?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 19:01   #17
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Что то тут конкретно неправильно:
delphi 7:
Код:
unit file_2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,IdMultipartFormData, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    idhtp1: TIdHTTP;
    btn1: TButton;
    lbl1: TLabel;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  {определяем переменные для выполнения поставленной задачи}
  FileName: string; //имя файла :)
  response: string; //переменная для возращения HTML кода страницы
  formData: TIdMultiPartFormDataStream; //для передачи информации
begin
  //FileName := 'file_for_server.txt';//BRM_001.bmp';
  FileName := 'BRM_001.bmp';
  formData := TIdMultiPartFormDataStream.Create;
    {Передаем информацию}
  formData.AddFormField('param1', 'value1');
  {Передаем файл}
  formData.AddFile('sfile',fileName,'application/octet-stream');
 //formData.AddFile('File',fileName,'BINMODE');
  {Передаем информацию}
  formData.AddFormField('param1', 'value1');

  {
   Далее отсылаем все в php скрипт.
   переменной response, результат выполнения скрипта (проще говоря
   HTML код сгенерированной скриптом страницы).
  }

  response := idhtp1.Post('http://test1.ru/file.php',formData);
  //mmo1.lines.text := idhtp1.Post('http://hspick.ru/showthread.php',formData);
 {
  Ну а дальше пишешь обработчик который выясняет отправлена
  информация или нет.
 }
 lbl1.Caption:=response;
 formData.Free;
end;

end.
PHP:
Код:
<?php

	
$param1=$_POST['param1'];

$uploaddir = ''; 
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])){
  print "Файл '".$_FILES['userfile']['tmp_name']."' не залился "; die;
}
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
    print "File is valid, and was successfully uploaded.";
} else {
    print "Не могу залить файл'".$_FILES['userfile']['tmp_name']."' РІ '".$uploaddir . $_FILES['userfile']['name']."'"; die;
}
echo $param1;


?>

Ответ:
Код:
Файл " не залился

Последний раз редактировалось Illusiony; 15.06.2015 в 19:05.
Illusiony вне форума Ответить с цитированием
Старый 15.06.2015, 20:11   #18
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Сделал как в передача txt файла : http://www.sql.ru/forum/923258-1/kak...fayl-na-server

Код:
unit file_2;

interface

uses
  {Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,IdMultipartFormData, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls; }
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP,IdMultipartFormData,WinInet;

type
  TForm1 = class(TForm)
    idhtp1: TIdHTTP;
    btn1: TButton;
    lbl1: TLabel;
    edt1: TEdit;
    mmo1: TMemo;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
 function CheckUrl(url: string): boolean;   //проверка доступности сервера
var
  hSession, hfile, hRequest: hInternet;
  dwindex, dwcodelen: dword;
  dwcode: array [1..20] of char;  //масив 1 до 20
  res: pchar;
begin
  if pos('http://', lowercase(url)) = 0 then
    url := 'http://'+url;
  Result := false;
  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if assigned(hsession) then
  begin
    hfile := InternetOpenUrl(hsession, pchar(url), nil, 0, INTERNET_FLAG_RELOAD, 0);
    dwIndex := 0;
    dwCodeLen := 10;
    HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
    res := pchar(@dwcode);
    result := (res = '200') or (res = '302');
    if assigned(hfile) then
      InternetCloseHandle(hfile);
    InternetCloseHandle(hsession);
  end;
end;
{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  {определяем переменные для выполнения поставленной задачи}
  FileName: string; //имя файла :)
  response: string; //переменная для возращения HTML кода страницы
  formData: TIdMultiPartFormDataStream; //для передачи информации
   s: string;
   k:integer;
begin
  FileName := 'D:\New_cards\Hearthstone Deck Tracker\S_nouta\Projects\Pr_Save_deck_v_1\Podgotovka\file_for_server.txt';//BRM_001.bmp';
  //FileName := 'BRM_001.bmp';
  formData := TIdMultiPartFormDataStream.Create;
    {Передаем информацию}
  //formData.AddFormField('param1', 'value1');
  {Передаем файл}
  //formData.AddFile('sfile',fileName,'application/octet-stream');
  formData.AddFile('File',fileName,'application/octet-stream');
 //formData.AddFile('File',fileName,'BINMODE');
  {Передаем информацию}
  formData.AddFormField('param1', 'value1');
  formData.AddFormField('param2', 'value2');

  {
   Далее отсылаем все в php скрипт.
   переменной response, результат выполнения скрипта (проще говоря
   HTML код сгенерированной скриптом страницы).
  }
   s:='http://test1.ru/file.php';
   //s:='http://hspick.ru/file_.php';
  if not (CheckUrl(s)) then
  begin
    MessageBox(0, 'Произошла ошибка!', 'Ошибка', MB_ICONERROR);
  end
  else
  {
   Далее отсылаем все в php скрипт.
   переменной response, результат выполнения скрипта (проще говоря
   HTML код сгенерированной скриптом страницы).
  }
  //response := idhtp1.Post('http://test1.ru/file.php',formData);
  //mmo1.lines.text := idhtp1.Post('http://hspick.ru/showthread.php',formData);
 {
  Ну а дальше пишешь обработчик который выясняет отправлена
  информация или нет.
 }

 idhtp1.Get(s);
  k:=idhtp1.ResponseCode;
  edt1.Text:=inttostr(k);
  if k=200 then
  begin
  response := idhtp1.Post(s,formData);
  mmo1.lines.text := idhtp1.Post(s,formData);
  end;
 lbl1.Caption:=response;
 formData.Free;
end;

end.

Тоже самое в ответе в общем.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataLife Engine аваст кричит на вирус JS:Includer-P [Trj] Как исправить? kolobok416 Свободное общение 2 10.07.2013 09:12
Файерволл блокирует программу Кортана Работа с сетью в Delphi 20 15.12.2012 00:21
Антивирус аваст megostudent Софт 15 06.06.2012 15:55
НЕ блокирует трафик Летучий_СкилетиК Свободное общение 0 07.02.2011 18:56
Зацеите мою програмку пожалуйста. Vladya Софт 7 15.05.2009 11:39