如何在 ASP.net Web 应用程序中将嵌入的 PDF 保存到解决方案内的文件夹中
Posted
技术标签:
【中文标题】如何在 ASP.net Web 应用程序中将嵌入的 PDF 保存到解决方案内的文件夹中【英文标题】:How to save an embedded PDF to a folder inside solution in ASP.net web app 【发布时间】:2017-08-10 16:58:02 【问题描述】:我正在使用引导框架在 asp.net 中编写一个 Web 应用程序以获取样式。目的是显示 pdf,然后用户填写 pdf,单击下面的按钮后,应将其保存到解决方案内的文件夹中以供进一步处理。我能够嵌入 pdf 并使其完全可编辑,但是,我一直试图将其保存回解决方案。我已经在网上研究了答案,但我认为唯一可能有用的是 File.writeAllBytes() 方法。我只是不知道如何实现它。非常感谢任何有关如何完成此操作的帮助或建议。
这是 UI 代码:
<%@ Page Language="C#" AutoEventWireup="true" masterpagefile="~/Site.Master"
CodeBehind="RenderPDF.aspx.cs" Inherits="DocusignTest.RenderPDF" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<div class="row">
<div class="col-lg-4">
<div class="jumbotron">
<label>First Name:</label>
<input type="text" class="form-control"/>
<label>Last Name:</label>
<input type="text" class="form-control"/>
<label>Email:</label>
<input type="email" class="form-control"/>
</div>
</div>
<div class="col-lg-8">
<!-- this is the pdf the user needs to fill out -->
<embed id="pdf" src="e-docs/PAF.pdf" style="width: 100%; height:1000px"/>
<div class="pager">
<asp:Button ID="eSignButton" runat="server" CssClass="btn btn-primary" Text="Sign" OnClick="eSign_Click" Enabled="false"/>
<input type="checkbox" id="eSignCheckbox" onclick="enableButton();"/>I have filled out this document to the best of my abilities.
</div>
</div>
</div>
<script lang="javascript" type="text/javascript">
var button = WebForm_GetElementById("MainContent_eSignButton")
var checkbox = WebForm_GetElementById("eSignCheckbox")
function enableButton()
if (checkbox.checked)
button.disabled = false;
else
button.disabled = true;
</script>
下面是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace DocusignTest
public partial class RenderPDF : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
protected void eSign_Click(object sender, EventArgs e)
savePDF();
protected void savePDF()
//DO something.
//Maybe using File.writeAllBytes() to save the embedded PDF to folder in solution.
【问题讨论】:
完成的PDF文件不需要上传吗? @stuartd 上传到哪里?服务器?为什么?我需要将其保存到解决方案内的文件夹中以进一步处理它,然后我可以将其保存到服务器 “我需要将它保存到解决方案内的文件夹中” - 您想将 PDF 保存在您的代码中吗?这很令人困惑。不会是网络服务器上的文件夹吗?如我所见,您已在网页中嵌入了 PDF,并且您的用户正在浏览器中对其进行编辑。当他们点击签名按钮时,填写的PDF只存在于浏览器中,所以您不必上传它进行进一步处理吗? @stuartd 实际上 pdf 已经存在于解决方案内的文件夹中。 好吧,对不起,我想我误解了。 【参考方案1】:存在于客户端的内容不能“自动”上传 - 出于多种原因,这会很糟糕。
嵌入将项目下载到用户计算机上的临时文件夹,然后显示它。在您的实例中,PDF 被下载到临时文件夹,用户对其进行编辑,然后它可能(因为我真的不知道 Adobe 如何处理可编辑的 PDF)保存回临时文件夹。它只能返回下载到的位置。
唯一可行的方法是用户将文件实际上传回网站。
编辑
您的另一个选择是:Can a PDF fillable form post itself to an HTTPS URL? 这似乎很有希望...
【讨论】:
您是否建议添加一个用户提示以在他们完成编辑后将其上传回来?也许是提交按钮? 当然。最好的方法是给他们一个下载 PDF 并填写的链接。请他们保存,然后上传并勾选标志框。根据您的要求,您可能需要检查该 PDF 是否实际填写或是否为同一个 PDF。 查看我的编辑,您可以将提交添加到 PDF,就像在这篇文章 ***.com/questions/4631008/…【参考方案2】:任何帮助真的很棒。不过,您可能正在做某事。如何 你会建议将文件上传回服务器文件夹吗?因为 如果我可以将它发送到服务器上的临时文件夹并从那里处理 它,我没关系。我不接受最初的想法。
我为银行做了类似的申请。它允许用户在客户端浏览器中以 PDF 格式填写贷款申请,并将其保存到数据库中。然后信贷员可以查看、修改和打印 PDF。
对于这种情况,您将需要一个组件来将 PDF 保存回服务器。我当时用的是ActivePDF。
【讨论】:
以上是关于如何在 ASP.net Web 应用程序中将嵌入的 PDF 保存到解决方案内的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net Web 应用程序中安全地嵌入 F# 编译器
如何在asp.net web api中将图像路径转换为http url?
如何在 ASP.NET Web API 实现中将数组传递给 OData 函数?
我们可以在 asp.net c# web 应用程序中嵌入对 twitter、linkedin、facebook、buzz 的授权吗?
如何在 asp.net mvc 中将文件传递给客户端而不下载 Web 服务器上的文件?
ASP.NET 4.5 在 ASP.NET Core 2.0 应用程序下的 Azure Web App 中将 502.5 作为虚拟应用程序抛出