我的网页应该如下: 当用户填写表单的字段并点击提交时,将为用户生成PDF文件(填写用户输入的信息),并将该PDF文件保存在目录中。
我所拥有的是,当用户点击提交时,为用户生成PDF:
Failed to load resource: net::ERR_FILE_NOT_FOUND file:///android_asset/www/build/js/Reflect.js.map
Failed to load resource: net::ERR_FILE_NOT_FOUND file:///android_asset/www/build/js/es6-shim.map
以下是我在目录中保存PDF的尝试,
var pdfPath = Path.Combine(Server.MapPath(path_name));
String file_name_pdf = "Test.pdf";
var pdfContents = PDFHelper.GeneratePDF(pdfPath, formFieldMap);
PDFHelper.ReturnPDF(pdfContents, file_name_pdf);
当我运行上面的内容时,我得到一个文件:System.Byte [] 保存在PDF目录中,请告知我缺少什么,以便将生成的PDF保存在目录中。
请求的每个方法的代码:
var pdfPath = Path.Combine(Server.MapPath(path_name));
var formFieldMap = PDFHelper.GetFormFieldNames(pdfPath);
string username = "Test";
string password = "12345";
String file_name_pdf = "Test.pdf";
var pdfContents = PDFHelper.GeneratePDF(pdfPath, formFieldMap);
WebRequest request = WebRequest.Create(Server.MapPath("~/PDF/" + pdfContents));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
Stream reqStream = request.GetRequestStream();
reqStream.Close();
PDFHelper代码:
protected void generate_pdf()
{
String path_name = "~/Forms/Form1.pdf";
var pdfPath = Path.Combine(Server.MapPath(path_name));
String file_name_pdf = "Test.pdf";
var pdfContents = PDFHelper.GeneratePDF(pdfPath, formFieldMap);
PDFHelper.ReturnPDF(pdfContents, file_name_pdf);
}
protected void save_pdf()
{
String path_name = "~/PDF/";
var pdfPath = Path.Combine(Server.MapPath(path_name));
var formFieldMap = PDFHelper.GetFormFieldNames(pdfPath);
string username = "Test";
string password = "12345";
String file_name_pdf = "Test.pdf";
var pdfContents = PDFHelper.GeneratePDF(pdfPath, formFieldMap);
WebRequest request = WebRequest.Create(Server.MapPath("~/PDF/" + pdfContents));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
Stream reqStream = request.GetRequestStream();
reqStream.Close();
}
答案 0 :(得分:4)
PDFHelper.GeneratePDF
返回PDF文件的字节数组。据我所知,您需要将此PDF存储在本地文件夹中。在这种情况下,您可以使用
using (var stream = File.Create(Path.Combine(pdfPath, file_name_pdf)))
{
stream.Write(pdfContents, 0, pdfContents.Length);
}
或
File.WriteAllBytes(Path.Combine(pdfPath, file_name_pdf), pdfContents)
另请参阅Can a Byte[] Array be written to a file in C#
所以,你的方法应该是那样的
protected void save_pdf()
{
String path_name = "~/PDF/";
var pdfPath = Path.Combine(Server.MapPath(path_name));
var formFieldMap = PDFHelper.GetFormFieldNames(pdfPath);
string username = "Test";
string password = "12345";
String file_name_pdf = "Test.pdf";
var pdfContents = PDFHelper.GeneratePDF(pdfPath, formFieldMap);
File.WriteAllBytes(Path.Combine(pdfPath, file_name_pdf), pdfContents);
WebRequest request = WebRequest.Create(Server.MapPath("~/PDF/" + pdfContents));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
Stream reqStream = request.GetRequestStream();
reqStream.Close();
}