![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте дорогие форумчане , столкнулся с проблемой закачки нужных мне файлов конфигураций на веб сервер для резервного копирования .
Код програмы примерно следующий : Код:
begin
sleep(5);
FileName := 'C:/****Setup.log';
formData := TIdMultiPartFormDataStream.Create;
formData.AddFile('file',fileName,'application/octet-stream');
formData.AddFormField('param1', 'value1');
response := idHTTP1.Post('http://локалхост/winlog.php',formData);
end;код скрипта куда обращается программа вот такой : Код:
<? copy($HTTP_POST_FILES['file'],"*****Setup.log") ?> Пробывал ещё вот так <? copy($File,"*****Setup.log") ?> Подскажите кто может в чём ошибка? Почему у меня фаил с машины на сервер не копируется??? Заранее благодарен. |
|
#2
|
|||
|
|||
|
а у тебя из браузера аплоадится файл нормально?
|
|
#3
|
|||
|
|||
|
Нормально вроде бы, всё в ручном режиме фалы льются на сервер , почему программно на делфе реализовать не могу , хз наверно в коде ошибка где то =(
|
|
#4
|
|||
|
|||
|
ааааапппп ======> =(
|
|
#5
|
||||
|
||||
|
абсолютно рабочий код:
http://data.cod.ru/61532 Код:
unit Unit1;
interface
uses
IdMultipartFormData,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses IdHeaderList;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
idmultipartformdatastream: TIdMultiPartFormDataStream;
begin
IdHTTP1.Get('http://data.cod.ru');
idmultipartformdatastream:=TIdMultiPartFormDataStream.Create;
idmultipartformdatastream.AddFormField('action', 'file_upload');
idmultipartformdatastream.AddFormField('password', '');
idmultipartformdatastream.AddFormField('description', 'testing');
idmultipartformdatastream.AddFormField('agree', '1');
idmultipartformdatastream.AddFile('sfile', 'c:\Downloads\background2.bmp', 'application/octet-stream');
try
IdHTTP1.Post('http://data.cod.ru/cabinet/upload/', idmultipartformdatastream);
except
if IdHTTP1.ResponseCode div 100<>3 then raise;
Edit1.Text:='http://data.cod.ru'+IdHTTP1.Response.RawHeaders.Values['LOCATION'];
end;
end;
end.idmultipartformdatastream.AddFile('sfile', 'c:\Downloads\background2.bmp', 'application/octet-stream'); Последний раз редактировалось NumLock, 24.06.2010 в 09:26. |
|
#6
|
||||
|
||||
|
Я кажется знаю в чем проблема.
Скрипты скачивать нельзя. Если б можно было их качать то небыло бы не одного не взломаного сайта в интернете, так как было бы известны пароли и логины от баз данных а это очень плохо. Когда мы загружаем в браузере ПХП страницу, то сервер выполняет ПХП скрипт и выдает нам згенерированый ХТМЛ код. Если ты пишешь код взаимодействия со своим сервером то вот мой вариант решения такой задачи. Пишем скрипт с возможностью обрабтки входных параметров(POST или GET). результат получаем в виде ХТМЛ кода. Например :'All systems work'. При надобности парсим ответ. Если тебе нужно скачать файл со скриптом со своего сервера который потдерживает FTP то для этого у инди есть спец. компонент. |
|
#7
|
|||
|
|||
|
Цитата:
Просто мне нужно именно не аплоадер чужой чейто заливать файлы а именно на свой сервер где я вот накатал жалкое подобие скрипта в две строчки который бы копировал файлы.Прежде чем браться переделывать расматривать на переделку твой скрипт, это со всеми типами фалов работает , или только картинки грузит ??? Я не совсем понимаю принцип работы связки просто , какие мне нужно передать кроме этих параметров ещё параметры скрипту??? =( Ещё не разу не работал с этим компонентом , и спецификации ограничиваются только синтаксисом , не каких объяснение нету что к чему. Последний раз редактировалось winner13, 25.06.2010 в 23:57. |