के साथ एचटीपी पोस्ट मेरे पास मेरे वेब सर्वर पर एक साधारण PHP स्क्रिप्ट है जिसे मुझे HTTP POST का उपयोग करके एक फ़ाइल अपलोड करने की आवश्यकता है, जिसे मैं डेल्फी में कर रहा हूं।इंडी
इंडी के साथ मेरा कोड यहां है लेकिन गारंटी है कि यह काम नहीं करेगा और मैं यह नहीं समझ सकता कि मैं ठीक से क्या नहीं कर रहा हूं। मैं सर्वर पर जो भेजता हूं उसे देख सकता हूं क्या ऐसा उपकरण है?
procedure TForm1.btn1Click(Sender: TObject);
var
fname : string;
MS,dump : TMemoryStream;
http : TIdHTTP;
const
CRLF = #13#10;
begin
if PromptForFileName(fname,'','','','',false) then
begin
MS := TMemoryStream.Create();
MS.LoadFromFile(fname);
dump := TMemoryStream.Create();
http := TIdHTTP.Create();
http.Request.ContentType:='multipart/form-data;boundary =-----------------------------7cf87224d2020a';
fname := CRLF + '-----------------------------7cf87224d2020a' + CRLF + 'Content-Disposition: form-data; name=\"uploadedfile\";filename=\"test.png"' + CRLF;
dump.Write(fname[1],Length(fname));
dump.Write(MS.Memory^,MS.Size);
fname := CRLF + '-----------------------------7cf87224d2020a--' + CRLF;
dump.Write(fname[1],Length(fname));
ShowMessage(IntToStr(dump.Size));
MS.Clear;
try
http.Request.Method := 'POST';
http.Post('http://posttestserver.com/post.php',dump,MS);
ShowMessage(PAnsiChar(MS.Memory));
ShowMessage(IntToStr(http.ResponseCode));
except
ShowMessage('Could not bind socket');
end;
end;
end;
"यह काम नहीं करता है" कम से कम उपयोगी वाक्यांश संभव है जब कुछ डीबग करना संभव हो। क्या काम नहीं करता है? यह गलत क्या करता है? –
@MasonWheeler अगर मुझे जवाब पता था तो शायद मैं इस सवाल नहीं पूछ रहा था। यह वेबसर्वर पर अपलोड नहीं होता है, जो मुझे लगता है कि पोस्ट हेडर खराब है लेकिन मुझे नहीं पता कि मैं क्या गलत कर रहा हूं। – opc0de
एमएस क्लीयर क्यों है; http.Post (यूआरएल, एमएस) से पहले बुलाया जाता है? – ComputerSaysNo