从表单提交 pdf - HttpHandler Context.Request.Files[0] 为空
Submit pdf from form - HttpHandler Context.Request.Files[0] is empty
我看到一些问题,人们似乎自己找到了这个问题,所以我会自己问。
我有一个用户需要填写并签名的 PDF,用户在签名后点击提交,pdf 就会发布到 ASHX 页面。我在页面上做的第一件事是:
public void ProcessRequest (HttpContext context) {
if (context.Request.Files.Count <= 0)
{
context.Response.Write("Error");
}
每次 运行 条件失败并写入 "Error"。
编辑:
以下是提交 PDF 的方式:
解决方案
感谢 Joel 的回答,我找到了答案。 PDF 作为 System.IO.Stream 发送到页面。使用:
Stream fs = context.Request.InputStream
我能够捕获 PDF。这是我用来将 PDF 读入字节数组的最终代码。
`public void ProcessRequest(HttpContext 上下文)
{
using (Stream fs = context.Request.InputStream)
{
long len = fs.Length;
try
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((int)len);
//Rest of Code`
Acrobat 提交的 PDF 或 Reader 是 PDF 的 ASCII 表示形式。你只需要将提交的内容写入磁盘即可。
我看到一些问题,人们似乎自己找到了这个问题,所以我会自己问。
我有一个用户需要填写并签名的 PDF,用户在签名后点击提交,pdf 就会发布到 ASHX 页面。我在页面上做的第一件事是:
public void ProcessRequest (HttpContext context) {
if (context.Request.Files.Count <= 0)
{
context.Response.Write("Error");
}
每次 运行 条件失败并写入 "Error"。
编辑:
以下是提交 PDF 的方式:
解决方案
感谢 Joel 的回答,我找到了答案。 PDF 作为 System.IO.Stream 发送到页面。使用:
Stream fs = context.Request.InputStream
我能够捕获 PDF。这是我用来将 PDF 读入字节数组的最终代码。
`public void ProcessRequest(HttpContext 上下文)
{
using (Stream fs = context.Request.InputStream)
{
long len = fs.Length;
try
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((int)len);
//Rest of Code`
Acrobat 提交的 PDF 或 Reader 是 PDF 的 ASCII 表示形式。你只需要将提交的内容写入磁盘即可。