سؤال

حسنا،

ولدي قاعدة بيانات SQL 2005 مع PDF المخزنة. يستخدم العمود نوع الصورة. لذلك عندما يحصل PDF يخزنها هو بايت [] مجموعة.

وحتى هنا هو الجزء الصعب. يمكنني الحصول عليها لتخزين البيانات ولكن لست متأكدا من كيفية التوجه نحو الحصول على بايت [] مجموعة العودة إلى صيغة PDF وعرضها على صفحة الويب.

وأنا باستخدام أداة من جزء 3rd لتوليد PDF، الذي يعمل كبيرة.

ورمز لدي لتوليد بايت [] مجموعة هي كما يلي:

Doc document = new Doc();
byte[] myArray = document.GetData();

وبعد ذلك تضاف بايت [] مجموعة في قاعدة البيانات.

وعندما أحصل على مجموعة الظهر من قاعدة البيانات أفعل هذا:

public byte[] GetPDF(parameters)
{
    return DAL.GetPDF(parameters)
}

وهذا ما يعيد بايت صحيح [] مجموعة كما أنه من المفترض أن.

والآن، فإن المسألة الوحيدة هي في الواقع الكتابة في PDF إلى موقع على شبكة الإنترنت، وبعد ذلك عرضها على موقع على شبكة الإنترنت، وأنا لست متأكدا من كيفية القيام بذلك أو من أين نبدأ حتى.

هل كانت مفيدة؟

المحلول

        Response.ContentType = "application/pdf";
        byte[] bytes = YourBinaryContent;

        using (BinaryWriter writer = new BinaryWriter(context.Response.OutputStream))
        {
            writer.Write(bytes, 0, bytes.Length);
        }

نصائح أخرى

وهذا هو بسيط جدا. في الواقع أنا فعلت هذا قبل شهر. كان لدينا لتخزين PDF في قاعدة البيانات ومن ثم الكتابة بها عند طلب العميل لعرض وثيقة بهم.

ما عليك القيام به على صفحة الويب الخاصة بك بإضافة التعليمة البرمجية التالية:

byte[] myarray = BusinessLayer.GetPDF(parameters)

Response.Clear();
Response.ContentType = "application/pdf";
Response.BinaryWrite(myarray);

ونرى ما اذا كان يعمل ليا.

وأنت ترغب في تعيين Response.ContentType إلى "التطبيق / الشعبي"، ومن ثم استدعاء الأسلوب Response.BinaryWrite، ويمر في البيانات بايت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top