2012-03-26 21 views
3

私は単純な署名画像であるBase64のJPEG画像文字列を持っています。私はSQL Serverに文字列を格納し、それを取得することができますが、メソッドに渡すか、Session変数に保存しようとするとnull値が返されます。メソッドに渡すか、セッション変数varに保存できる文字列には制限がありますか?文字列変数の制限

ここにコードがあります。

は、私はあなたが、文字列のサイズの制限を吹いた場合

 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); 

//ここであなたは、単にヌル

 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); 
     } 

おかげ

+1

「メソッドに渡す」は常に有効です。あなたの問題は、あなたが思うところではありません。 –

+3

セッション変数、つまりサーバーのメモリには常に制限があります。しかしそれとは別に、文字列を取得するコードと、セッション変数を格納/読み込む場所を表示してください。 –

+0

そして、VSignatureとVetSignatureの関係は...> –

答えて

5

VSignatureはないです、DBから文字列を取得しますnull値を返す - 例外が発生する。 farあなたのコードに何か間違っている可能性が高いが、あなたはそれを私たちに示していないので、何を言い出すのが難しい。

基本的に、の制限(約10億文字、IIRC)ですが、あなたがそれらにぶつかっていることはほとんどありません。

1

(あなたが巨大な画像を使用している場合を除く)。これは、画像サイズに関連することはほとんどありませんし、とにかくあなたは例外、ナットNULL値を受け取る必要があります...

はここにも参照:What is the maximum possible length of a .NET string?

関連する問題