Downloading Zip from SQL Image field

G

Guest

I'm converting a Delphi app to C#. The application uploads and downloads
files to an image field on SQL through a webservice. With Delphi, this was
done straight to SQL instead of a webservice. The C# code works fine in both
directions except in the case of zip files. I get a message, from WinZip,
telling me that the archive is not valid. The zip is valid, in the sql
server, becuase it can be opened when using my old Delphi version of this
program. I can also upload the zips with the C# version and open them with
the Delphi version so I'm pretty sure it how the file is being re-created
using C#.

Below is the code that I use to download and open the file Any help would be
appreciated.

TIA

//Get the document from the table
DataRow rowDataImage = null;
DataRowView rowData =
DataRowView)BindingContext[dsLibrary.Tables["AvailDocs"]].Current;
DataSet ds = DB.getDoc(System.Convert.ToInt32(rowData[0].ToString()));
string strDocExt =
DB.getDocFileExt(System.Convert.ToInt32(rowData[0].ToString()));
rowDataImage=ds.Tables[0].Rows[0];

//Read the image from the table field into a byte array
byte[] MyData= new byte[0];
MyData = (byte[])rowDataImage[0];
int ArraySize = new int();
ArraySize = MyData.GetUpperBound(0);

//Create a destination for the file
FileStream fs = new FileStream("c:\\elibtemp." + strDocExt,
FileMode.Create,FileAccess.Write,FileShare.Write,ArraySize,true);

// Create the writer for data.
fs.Write(MyData, 0,ArraySize);
fs.Close();
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi,

No idea if this is related or not, but in my office computer I have a
similar error, each time I select to download something from the internet
and select "open" instead of "save" I get the same error, but if I save it
first and open later I have no problem at all. I had no time to investigate
why is this happening, maybe the antivirus or a security policy.

Btw, the code seems fine , you did not post it how you are getting it from
the DB but it should be fine too.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top