我有一个Base64 jpeg图像字符串,这是一个简单的签名图像.我可以将字符串存储在SQL Server中并进行检索,但是当我尝试将其传递给方法或保存在Session变量中时,我得到null值.您可以传递给方法或保存在会话var中的字符串是否有限制?
这是代码;
我从db获取字符串,
string VSignature = ds.Tables[0].Rows[0]["SignatureB64"];
// VSignature gets valued ok
// then passed to a class with method to handle image,
Write.GetPageOneReadyToBeAltered(f_older + "\\FDD.PDF", f_older + @"\N.PDF",
CertID, VSignature);
Run Code Online (Sandbox Code Playgroud)
//这里VSignature为空
public static void GetPageOneReadyToBeAltered(string PageNReader, string PageNStamper, string CertificateNo, string VSignature)
{
// prepare page one's copy to be altered by user
PdfReader pdfreader = new PdfReader(PageNReader);
PdfStamper pdfStamper = new PdfStamper(pdfreader, new FileStream(PageNStamper, FileMode.Create));
/*
some pdf stuff done here, irrelevant
*/
var pdfContentByte = pdfStamper.GetOverContent(1);
byte[] bytSig1 = Convert.FromBase64String(VSignature);
MemoryStream msSig1 = new MemoryStream(bytSig1);
iTextSharp.text.Image sig1 = iTextSharp.text.Image.GetInstance(msSig1);
sig1.SetAbsolutePosition(23, 76);
sig1.ScaleToFit(60f, 60f);
pdfContentByte.AddImage(sig1);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
如果你破坏了字符串大小的限制,你不会只获得一个空值 - 你会得到一个例外.这是远远更有可能的是,你正在做的事情错在你的代码,但你所以很难说什么都没有它向我们展示.
基本上,虽然有限制(约一十亿个字符,IIRC),这是非常不可能的,你正在运行到他们.
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |