mokarram
یک شنبه 21 فروردین 1390, 14:51 عصر
با سلام خدمت اساتید
من می خواهم در فایل زیر شرطی بنویسم که غیر از فایل با فرمت پی دی اف فایلهای با فرمتهای دیگر مثل ورد و ایمج و غیره را هم از دیتابیس در داخل مرورگر دانلود کنم. دنبال یک راه می گردم. باید چه کار کنم. لطفا راهنماییم فرمایید.
<%@ WebHandler Language="C#" Class="FileHandlerLarge" %>
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class FileHandlerLarge : System.Web.IHttpHandler
{
const string conString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ASPNETDB.MDF;Integrated Security=True;User Instance=True";
public void ProcessRequest (HttpContext context) {
context.Response.Buffer = false;
context.Response.ContentType = "application/pdf";
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("SELECT FileBytes FROM Orders WHERE OrderID=@OrderID", con);
cmd.Parameters.AddWithValue("@OrderID", context.Request["OrderID"]);
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess );
if (reader.Read())
{
int bufferSize = 8040;
byte[] chunk = new byte[bufferSize];
long retCount;
long startIndex = 0;
retCount = reader.GetBytes(0, startIndex, chunk, 0, bufferSize);
while (retCount == bufferSize)
{
context.Response.BinaryWrite(chunk);
startIndex += bufferSize;
retCount = reader.GetBytes(0, startIndex, chunk, 0, bufferSize);
}
byte[] actualChunk = new Byte[retCount - 1];
Buffer.BlockCopy(chunk, 0, actualChunk, 0, (int)retCount - 1);
context.Response.BinaryWrite(actualChunk);
}
}
}
public bool IsReusable {
get {
return false;
}
}
}
من می خواهم در فایل زیر شرطی بنویسم که غیر از فایل با فرمت پی دی اف فایلهای با فرمتهای دیگر مثل ورد و ایمج و غیره را هم از دیتابیس در داخل مرورگر دانلود کنم. دنبال یک راه می گردم. باید چه کار کنم. لطفا راهنماییم فرمایید.
<%@ WebHandler Language="C#" Class="FileHandlerLarge" %>
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
public class FileHandlerLarge : System.Web.IHttpHandler
{
const string conString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ASPNETDB.MDF;Integrated Security=True;User Instance=True";
public void ProcessRequest (HttpContext context) {
context.Response.Buffer = false;
context.Response.ContentType = "application/pdf";
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("SELECT FileBytes FROM Orders WHERE OrderID=@OrderID", con);
cmd.Parameters.AddWithValue("@OrderID", context.Request["OrderID"]);
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess );
if (reader.Read())
{
int bufferSize = 8040;
byte[] chunk = new byte[bufferSize];
long retCount;
long startIndex = 0;
retCount = reader.GetBytes(0, startIndex, chunk, 0, bufferSize);
while (retCount == bufferSize)
{
context.Response.BinaryWrite(chunk);
startIndex += bufferSize;
retCount = reader.GetBytes(0, startIndex, chunk, 0, bufferSize);
}
byte[] actualChunk = new Byte[retCount - 1];
Buffer.BlockCopy(chunk, 0, actualChunk, 0, (int)retCount - 1);
context.Response.BinaryWrite(actualChunk);
}
}
}
public bool IsReusable {
get {
return false;
}
}
}