CGI - Submitting a Form

1. 浏览器提交一个表单

2. EmWeb Server访问存档文件

3. Server使用以文档对象组件的方式来表现内部表单,并且提交的数据被用于构建表单数据结构。

4. Server调用ewaFormSubmit_*()

5. ewaFormSubmit_*()函数执行编写者的指令

6. Server向浏览器发送回应

image

Note:

ewaFormSubmit_*()函数的返回值就是Server的回应,若返回NULL,则Server返回“204 No Content” 。

你可以在函数中调用ewsContextSendReply()来返回一个URL给browers,这个函数将使Server忽略掉ewaFormSubmit_*()的返回值。

你也可以在函数中调用ewsContextSetFile()来标识一个文件,并通知Server将这个文件返回给browers,这种情况下,你必须首先调用ewsContextSetFile()然后再调用ewsContextSendReply()。这样的话,Server将会忽略从ewaFormSubmit_*()的返回值,并将文件作为对submission的回应。

<think>好的,用户想知道如何在提交表单前附加字体文件。首先,我需要确定用户的具体场景。通常,表单提交可能涉及网页表单或者电子邮件表单,但根据常见情况,用户可能是在网页开发中需要上传字体文件。 接下来,考虑如何将字体文件附加到表单数据中。网页表单通常使用HTML和JavaScript,所以可能需要用FormData对象来收集文件数据。用户可能需要在前端通过<input type="file">选择文件,然后使用JavaScript将其添加到表单数据中,再通过AJAX提交。这时候要确保后端能够处理文件上传,比如使用Node.js的Express框架或者PHP的$_FILES。 另外,用户可能遇到字体文件无法上传的问题,需要检查文件类型是否被允许,比如.woff、.ttf等,以及服务器配置是否正确。同时,安全性方面,需要验证文件类型和大小,防止恶意文件上传。 还要考虑引用中的内容。引用[2]提到提交后需要保留证据,比如截图或邮件确认。所以在用户提交后,提示他们保存确认信息是必要的。引用[3]提到预印本的分享,虽然和字体文件无关,但可能用户担心版权问题,需要确保字体文件的使用符合许可协议。 最后,生成相关问题时要覆盖表单提交的其他方面,如文件类型限制、安全性、验证方法以及后端处理,这样用户可以得到全面的信息。</think>在提交表单前附加字体文件,通常需要根据表单的类型(网页表单、电子邮件附件等)采用不同的方法。以下是分步骤说明: ### 一、网页表单附加字体文件的方法 1. **前端文件上传控件** 在HTML表单中添加文件上传字段: ```html <form id="myForm" enctype="multipart/form-data"> <input type="file" name="fontFile" accept=".ttf, .otf, .woff, .woff2"> </form> ``` - `enctype="multipart/form-data"` 确保支持文件传输 - `accept` 属性限制可上传的文件类型 2. **JavaScript动态附加文件** 若需通过脚本动态添加文件: ```javascript const fileInput = document.querySelector('input[type="file"]'); const fontFile = new File([blobData], 'custom_font.woff2', {type: 'font/woff2'}); // 创建DataTransfer对象并附加文件 const dataTransfer = new DataTransfer(); dataTransfer.items.add(fontFile); fileInput.files = dataTransfer.files; ``` 3. **后端接收验证** 以Node.js Express为例: ```javascript app.post('/submit-form', (req, res) => { const fontFile = req.files.fontFile; if (!fontFile.mimetype.includes('font')) { return res.status(400).send('仅允许字体文件'); } // 保存文件到服务器 fontFile.mv(`/uploads/${fontFile.name}`); }); ``` ### 二、注意事项 1. **文件类型限制** 常见字体文件扩展名:`.ttf`(TrueType)、`.otf`(OpenType)、`.woff`/`.woff2`(Web开放字体) 2. **安全性验证** - 检查MIME类型(如`application/font-woff`) - 限制文件大小(如Apache配置`LimitRequestBody`) - 使用病毒扫描工具检查上传文件 3. **浏览器兼容性** 使用`File API`时需注意旧版浏览器支持问题,可通过`feature detection`处理: ```javascript if (window.File && window.FileReader) { // 支持现代文件操作 } ``` ### 三、引用说明 提交后需保留上传凭证(如服务器返回的`transaction ID`),若遇到问题可提供浏览器控制台日志或网络请求截图作为证据[^2]。若涉及字体版权,需确保符合许可证要求(如OFL许可证)[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值