【发布时间】:2019-02-28 20:23:02
【问题描述】:
我已经阅读了许多有关使用 idHTTP 发送数据的相关帖子,但我仍然无法管理它。 我使用此代码:
更新
procedure TTabbedForm.SpeedButton1Click(Sender: TObject);
var
fName : string;
mStream : TMemoryStream;
begin
fName := 'image.jpg';
mStream := TMemoryStream.Create;
myImage.Bitmap.SaveToStream(mStream);
mStream.Position := 0;
try
IdHTTP1.Request.ContentType := 'application/octet-stream';
IdHTTP1.PUT('http://www.example.com/'+fName, mStream);
finally
mStream.free;
end;
end;
但我收到错误“方法不允许”。 请问我做错了什么?
【问题讨论】:
-
要么您的 URL 不正确,要么服务器不允许您使用的 URL 放置。
-
需要指定完整的url,包括前导
http://或https://方案组件 -
实际上我在 URL 中包含了 http:// 但 stackoverflow 的编辑器不允许它。所以我没有展示。我认为服务器不允许使用 put 命令。也许允许发布命令,但在这种情况下我如何上传流?
-
@JimPapas
TIdHTTP有其Post()发布流的方法的重载。但是您需要知道要使用哪种流。服务器是否允许发布原始数据,还是需要将其包装在 MIME 中?它有很大的不同。您的服务器实际上期望什么?是否记录在案?它是我们可以查看的公共服务器吗? -
Remmy 我想将流上传到这个 URL 'drive.google.com/open?id=1U9wTzrHmttbo1tQrwsTjcdXsboKG40Ah'