我的问题是标题。我有一个datasnap rest服务器,我想用java或java脚本上传文件。怎么办?(最好有示例代码)非常感谢您!
问问题
1971 次
1 回答
2
我曾经尝试将流传递给 REST 调用,但最终还是通过直接 WebBroker 请求上传到页面......这更容易管理。这也不是微不足道的,因为当您使用表单让用户选择要上传的文件时,您必须管理收到的多部分请求数据。
这是我在 WebModuleBeforeDispatch 中使用的一些代码:
类型 TMyIdHTTPAppRequest = 类(TIdHTTPAppRequest);
haReq := TMyIdHTTPAppRequest(Request);
fname := IntToStr (haReq.ContentLength);
multi := TMultipartRequestFiles.Create(haReq.FRequestInfo,
haReq.content);
if (multi.Count > 0) and Assigned (multi.Items[0]) then
begin
theFile := TFileStream.Create(ServerConf['fileupload:tempdir'] + folder + '\' +
multi.Items[0].FileName, fmCreate);
multi.Items[0].Stream.Position := 0;
TheFile.CopyFrom(multi.Items[0].Stream, multi.Items[0].Stream.Size);
theFile.Free;
然而,它基于我拥有的自定义 TMultipartRequestFiles,试图将其清理并加载为我对 Delphi datasnap 的 Relax 开源扩展的一部分。
还有其他管理文件上传的解决方案吗?我想应该有一些可以在 Indy 中使用的东西,我多年前写了那个类。
于 2012-07-29T16:24:45.057 回答