Delphi 7 ISAPI WebBroker 文件上传

2024-01-03

我正在尝试在 Delphi 7 Webbroker CGI 中接受文件上传。

我正在使用 Shiv Kumar 的 TMsMultipartParser,但 Chrome 遇到问题。我无法访问解析的数据(令人惊讶的是,资源管理器工作正常)。

这是我的代码:

with TMsMultipartFormParser.Create do
begin
    Parse(Request);

    lsExternalID:=ContentFields.Values['external_id'];

    if (lsExternalID='') then
        raise Exception.Create('No external ID');

    for i := 0 to Files.Count -1 do
    begin
        lsFileName:=files[i].FileName;
        //Rename file using external ID (not included for simplicity)
        Files[i].SaveToFile(lsFilename);
    end;
    Response.Content := 'OK';
    free;
end;

按照建议here https://stackoverflow.com/a/15386511,我尝试使用http://www.mrsoft.org/Delphi/MultipartParser.pas http://www.mrsoft.org/Delphi/MultipartParser.pas但我无法编译它。它使用一个名为 UniversalUtils 的单元,我在任何地方都找不到。

我知道这是一项非常过时的技术。几乎所有对它的引用都已经从网络上消失了(相信我,我已经搜索过)。购买任何帮助将不胜感激。

Thanks.


感谢@mrabat,我终于解决了我的问题。 这个项目开始于Delphi 5。后来升级到Delphi 7(无法进一步升级,因为很多部分不支持Unicode字符串,我们使用ANSI)。 我们使用 Shiv 的 TMsMultipartParser 因为 Delphi 5 没有包含任何解析器。 Delphi 7 在 ReqMulti.pas 单元中有 TMultipartContentParser,并且它工作得很好。

对于需要示例的任何人,我将发布我的工作代码:

with TMultipartContentParser.Create(Request) do
begin
    lsExternalID:=ContentFields.Values['external_id'];
    if (lsExternalID='') then
        raise Exception.Create('No external ID');

    for i := 0 to Request.Files.Count -1 do
    begin
        lsFileName:=Request.Files[i].FileName;
        //Rename file using external ID (not included for simplicity)
        TMemoryStream(Request.Files[i].Stream).SaveToFile(lsFilename);
    end;
    Response.Content := 'OK';
    Free;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi 7 ISAPI WebBroker 文件上传 的相关文章

  • 以编程方式重新启动 Delphi 应用程序

    应该不可能运行我的应用程序的多个实例 因此项目源码包含 CreateMutex nil False PChar ID if GetLastError ERROR ALREADY EXISTS then Halt 现在我想以编程方式重新启动我
  • Word 2010 自动化:“转到书签”

    我有一个用 Delphi 7 编写的程序 它打开一个基于模板的新 Word 文档 文档打开后 系统会自动跳转到书签 在模板中预定义 并在其中添加一些文本 以下代码在 Word 2003 中工作正常 但会导致invalid variant o
  • 当responseText包含有效的Xml时,IXMLHttpRequest.responseXml为空,没有解析错误

    我正在从中获取一些 XML政府网站 http www bankofcanada ca stats assets rates rss noon en all xml http www bankofcanada ca stats assets
  • Delphi 2009 IDE结构视图折叠功能

    现在有谁知道折叠 Delphi 2009 IDE 结构视图中的所有项目吗 我不知道折叠所有项目 这使我很难从视图中找到我的课程 Thanks 选择根节点 类 并按数字键盘上的 除号 那会让一切崩溃 然后按数字键盘上的 加号 键 第一级将展开
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • 每次 TDbGrid 的选定位置更改时都会触发什么事件?

    我的项目中有一个 TDbGrid 每次更改所选行时我都试图触发一个事件 行中的任何更改都已经更新了链接到同一数据源的所有数据感知控件 但还需要进行其他更改 我需要一个事件处理程序 我认为 OnColEnter 会起作用 根据帮助文件 它在以
  • 为什么 {$ifopt FINITEFLOAT ON} 无法编译?

    我有这样的构造 ifopt FINITEFLOAT ON message FINITEFLOAT option ON else message FINITEFLOAT option OFF endif 在我的源代码中 它不会编译 这一定是一
  • 如何在运行时(Delphi/Windows)程序中添加代码?

    我正在Windows XP Delphi 7上工作 我需要在正在运行的程序中添加一些过程 或函数 并且我不想在完成后再次重新编译它 我只有一个具有 5 个功能的主机应用程序来发送不同类型的警报 但是还有其他新的警报类型 所以我必须执行新的功
  • 如何检查注册表项是否存在

    我不知道我的错误在哪里 它总是跳到else分支 但是密钥存在 我检查了几次 var reg TRegistry begin with TRegistry Create do try RootKey HKEY CURRENT USER Ope
  • 任意通用列表的通配符

    我有一个类 MyClass 它不是通用的 包含任意 TList 并对其执行某些操作 我希望用通用 TList 替换 TList 但 MyClass 必须保持非通用 由于 Delphi 是不变的 这样的事情是行不通的 list1 TList
  • TThread.resume 在 Delphi-2010 中已弃用,应该在什么地方使用?

    在我的多线程应用程序中 I use TThread 挂起 and TThread resume 自从将我的应用程序移至 Delphi 2010 后 我收到以下警告消息 DCC 警告 xxx pas 277 W1000 符号 Resume 已
  • 创建无边框表单而不丢失 Windows 命令

    我已将表单更改为无边框表单 我只是更改了BorderStyle财产给bsNone 但现在我的应用程序失去了 Windows 锚点和一些命令 例如 WIN 对齐表单客户端 WIN 最小化表格 WIN 表格右对齐 WIN 表格左对齐 我尝试过设
  • 从 C++ .dll 到 Delphi Forms 应用程序的 PostMessage 问题

    我有用 Delphi 7 编写的 Windows 窗体应用程序和使用 MFC 编写的 C dll 目前 我正在尝试实现从 dll 到主可执行文件的基本消息发布 以在进度条上显示用户计算过程 但遇到了几个问题 让我先描述一下我的方法 我在 D
  • 如何制作自定义组件属性?

    我需要帮助来制作一个控件属性 当您单击它时 它会弹出一个自定义对话框 例如设置 就像 TPicture 一样 有什么想法或建议吗 如果您的类用作其他组件的属性 并且您想使用对象检查器来调用对话框 那么您必须实现并注册一个自定义属性编辑器 例
  • 如何隐藏主窗体而不是关闭它?

    如果用户点击X在我的主窗体上 我希望窗体隐藏 而不是关闭 这听起来像是一份工作OnClose表单事件 http docs embarcadero com products rad studio delphiAndcpp2009 HelpUp
  • 挂钩到文件,实时读取新内容

    我如何连接到另一个程序当前正在使用的文件 该程序不断向该文件写入内容 假设有一个 10 行的文本文件 当我启动我的应用程序时 每次写入程序保存其内容时 它都必须检测并读取其中的任何内容 可以在不不断检查文件大小 日期的情况下完成此操作吗 您
  • 当应用程序最小化时隐藏表单

    我有一个主表单和一个状态表单 当我的应用程序中的工作正在进行时 我会显示它们 如果工作完成我就打电话Hide状态表上出现 状态表消失 当我最小化主窗体而等待窗体可见时 就会出现问题 然后两种形式都被隐藏 这就是我想要的 但是 如果工作完成时
  • 如何在TWebBrowser中显示相对路径图像?

    我正在 DesignMode Doc DesignMode On 中使用 TWebBrowser 来编写 HTML 文档 TWebBrowser 中没有加载文档 磁盘上的 HTML 文件 我直接在 TWebBrowser 中从零开始创建文档
  • Delphi XE3,丑陋的 StringGrid 边框

    与 Delphi 7 相比 为什么 XE3 中的 String Grid 边框如此不清晰 如何解决这个问题 Delphi 2010 之后所有的网格都是主题化的 要在网格上禁用新主题 您必须设置属性 在对象检查器中将 DrawingStyle
  • 如何使用 DSPACK 将自定义音频缓冲区注入 DirectX 过滤器图表?

    我使用 Delphi 6 和 DSPACK 来执行一些涉及音频和 DirectX 的操作 我在 输入 方面找到了将枚举的音频输入设备之一分配给 TFilter 对象并将该过滤器连接到 TSampleGrabber 对象的位置 这为我提供了将

随机推荐

  • Reporting Services:具有父子孙的业务对象数据源

    如何使用 POCO 自定义业务对象创建具有父子孙关系的报表 public class Invoice public List
  • WPF - 检测转换器中的设计模式

    我有一个转换器 我希望能够在设计模式下将值更改为 Visibility Collapsed 没错 它忽略了 GetIsInDesignMode 另外 我通过依赖注入 棱镜 绑定虚拟机 转换器 public object Convert ob
  • war 文件中的可执行文件

    我们希望发布一些帮助程序脚本 shell 脚本 作为应用程序战争的一部分 不幸的是 我们的构建系统 maven 似乎放弃了所有文件的权限 并且脚本最终没有设置可执行位 有可能这样做吗 war 格式支持可执行文件吗 如果是 如何告诉 Mave
  • 使用javascript在html上绘制矩形

    我知道有类似的问题here https stackoverflow com questions 14680690 draw rectangles and annotate webpage 但问题和答案都没有任何代码 我想做的就是将此功能移植
  • PercentRelativeLayout - 缺少布局宽度警告

    我正在尝试支持库中的 PercentRelativeLayout 并且the docs http developer android com reference android support percent PercentRelative
  • Ionic 2 使用 firebase 进行谷歌登录

    我在 firebase 身份验证和 google 提供商方面遇到了一些麻烦 我尝试使用谷歌提供商登录 这工作正常 但后来我想重定向到我的主页 但我遇到了问题 我有一个身份验证提供者 import Injectable from angula
  • Android 14 及更高版本是否可以使用 Java 8 功能Optional 和 Stream

    我想在当前的项目中使用选项和流 我已经进行了很多空检查和很多循环 不久前 我注意到Java 8中有Optional和Streams这样方便的类 我想使用它们 但我不能 因为我的项目的minSdk是14 是否可以使用Java 8功能适用于 A
  • 使用 Codable 序列化为 JSON 时 Swift 字符串转义

    我正在尝试按如下方式序列化我的对象 import Foundation struct User Codable let username String let profileURL String let user User username
  • 如何创建动态索引来获取元组的值?

    在 Python 中 我了解到可以通过动态索引检索元组值 data 1 2 3 4 data 0 for a in range len data print data a 输出 1 2 3 4 如何在 Rust 中做到这一点 我尝试过这样的
  • 将 CSS 和 JS 文件放置在 Mavenized Java Web 应用程序中的最佳位置?

    我在 Maven 中有一个遵循以下结构的 Web 应用程序 src main java resources webapp 最好将它放在主文件夹中 然后 Maven 插件会尝试移动它 或者我应该将它放在 webapp 文件夹中 为什么 如果不
  • PHP PDO MySQL 事务代码结构

    我正在尝试使用 PHP PDO 在 MySQL 中设置我的第一个事务 我只是有一个简单的问题 确定上一个查询是否成功的最佳方法是什么 这是我现在所拥有的 但我宁愿找到一种方法来使用 if 语句测试查询 这几乎是模拟代码 试图获得一个工作模型
  • 几天前创建的分支的 Git rebase

    我需要帮助来理解这种情况下的 git rebase 我查看了 10 天前某人创建的一个分支 我使用 git checkout b
  • 不使用 <<- 赋值的递归函数?

    有了向量 x 我需要在内部函数中递归地更改它 这是我使用的实现 lt lt 全局赋值运算符 outer lt function x lt rep 1 5 inner lt function i if i gt length x return
  • 在 Immutable.js 中获取嵌套值

    根据这里的文档 https facebook github io immutable js docs Map getIn https facebook github io immutable js docs Map getIn 我应该能够通
  • 使用 ipcluster 从从节点读取标准输出

    我已经使用设置了一个集群 ipcluster start n 8 然后使用访问它 from IPython parallel import Client c Client dview c e i for i in c 我正在从属节点 e 0
  • Selenium C# WebDriver:等待元素出现

    我想确保在网络驱动程序开始执行操作之前存在一个元素 我正在尝试让这样的事情发挥作用 WebDriverWait wait new WebDriverWait driver new TimeSpan 0 0 5 wait Until By I
  • Dynamodb 按照 no-sql 设计查询所有记录

    我知道在 dynamodb 中编写查询 但我还是新手 现在对于一个项目来说 我设计的不仅仅是创建一个带有分区键和排序键的表 我的表的无 SQL 数据模型数据结构 据此 我已经实施了 列出 添加 更新 删除 dynamodb 查询 我的问题是
  • Vuejs Axios 数据未显示

    不显示信息的问题在获取时被延迟 我需要任何帮助来解决这个问题 h1 message h1 div class panel panel primary div class panel heading div class row div cla
  • 使用 .asmx 使用 lighttpd 和 mono fastcgi

    我已将 Web 服务部署到运行 lighttpd 和 fastcgi mono server2 的 ubuntu 服务器 asmx 页面加载正确 但当我测试该方法时 我得到 404 我的 Web 服务称为 Import asmx 我的方法称
  • Delphi 7 ISAPI WebBroker 文件上传

    我正在尝试在 Delphi 7 Webbroker CGI 中接受文件上传 我正在使用 Shiv Kumar 的 TMsMultipartParser 但 Chrome 遇到问题 我无法访问解析的数据 令人惊讶的是 资源管理器工作正常 这是