Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Response.BinaryWrite HELP!

Reply
Thread Tools

Response.BinaryWrite HELP!

 
 
Dave
Guest
Posts: n/a
 
      10-27-2008
I have a small web app that publishes files to a SQL database. I just
noticed this morning that 2 conditions exist that I need help with.

1.) Any file that can be open with NotePad have the HTML for the web
page appended to the document when it's received. Example...

This line was entered in the *.txt file prior to upload. Everything
below this was added when retrieving from SQL.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Untitled Page
</title>
<link href="App_Themes/j


End Example


Upload Code:
VaultGridView.SelectedIndex = -1;
strConnection =
ConfigurationManager.ConnectionStrings["DocumentVaultConnectionString"].ConnectionString;
dbConn = new SqlConnection(strConnection);
dbConn.Open();
dcmd = new SqlCommand();
dcmd.CommandText = "INSERT INTO [DocumentVault].[dbo].
[tblVault] " +
"([tID] " +
",[FileName] " +
",[Filesize] " +
",[FileData] " +
",[uBy] " +
",[uDate]) " +
"VALUES " +
"(@tID " +
",@FileName " +
",@Filesize " +
",@FileData " +
",@uBy " +
",@uDate)";
dcmd.Parameters.Add(new SqlParameter("tID",
TumblersGridView.SelectedValue));
dcmd.Parameters.Add(new SqlParameter("Filename",
FileUpload1.FileName));
dcmd.Parameters.Add(new SqlParameter("Filesize",
FileUpload1.PostedFile.ContentLength));
dcmd.Parameters.Add(new SqlParameter("FileData",
FileUpload1.FileBytes));
dcmd.Parameters.Add(new SqlParameter("uBy",
Session["UserID"].ToString()));
dcmd.Parameters.Add(new SqlParameter("uDate",
DateTime.Now.Date));
dcmd.Connection = dbConn;
dcmd.ExecuteNonQuery();
VaultGridView.DataBind();




Download Code:
strConnection =
ConfigurationManager.ConnectionStrings["DocumentVaultConnectionString"].ConnectionString;
dbConn = new SqlConnection(strConnection);
dbConn.Open();
dcmd = new SqlCommand();
dcmd.CommandText = "SELECT [FileName], [FileData] " +
"FROM [DocumentVault].[dbo].[tblVault] " +
"WHERE([vID] = @vID)";
dcmd.Parameters.Add(new SqlParameter("vID",
VaultGridView.SelectedValue));
dcmd.Connection = dbConn;
SqlDataReader dr = dcmd.ExecuteReader();
dr.Read();

Response.Clear();
Response.ContentType = "application/x-unknown";
Response.AppendHeader("Content-Disposition",
"attachment; filename=\"" + dr["FileName"] +
"\"");
Response.BinaryWrite((byte[])dr["FileData"]);

dbConn.Close();
VaultGridView.SelectedIndex = -1;





2.) All Office 2007 documents when retrieved open as corrupt.


Everything that I've found so far shows that Response.WriteBinary is
the right directrion. If it's not, I'm sure that there's someone out
there that can give me the right path to take.

Thanks
 
Reply With Quote
 
 
 
 
Göran Andersson
Guest
Posts: n/a
 
      10-27-2008
Dave wrote:
> I have a small web app that publishes files to a SQL database. I just
> noticed this morning that 2 conditions exist that I need help with.
>
> 1.) Any file that can be open with NotePad have the HTML for the web
> page appended to the document when it's received. Example...
>
> This line was entered in the *.txt file prior to upload. Everything
> below this was added when retrieving from SQL.
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
> www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head><title>
> Untitled Page
> </title>
> <link href="App_Themes/j
>
>
> End Example
>
>
> Upload Code:


8< snip

>
> Download Code:


8< snip

>
> 2.) All Office 2007 documents when retrieved open as corrupt.
>
>
> Everything that I've found so far shows that Response.WriteBinary is
> the right directrion. If it's not, I'm sure that there's someone out
> there that can give me the right path to take.
>
> Thanks


Remove all markup code from the aspx file, except the @Page directive.

Add the property Theme="" to the @Page directive, so that it doesn't try
to add theming to the page.

Alternatively, if you really want the page to either work as a web page
or a download proxy depending on some input, you can use Response.End()
after your code that is writing the file to the response stream to keep
the page from being rendeded to the stream also.

--
Göran Andersson
_____
http://www.guffa.com
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments