Jag har problem då jag sparar en binär fil i access, det går att spara, men när jag öppnar den så är den fel, alltså ett word document ser fel ut när jag titar på den, Du skall i access ha fälttypen memo/pm för detta fält. Du bör även använda ADO och sök exempelvis på tips & tricks efter ordet AppendChunk och GetChunk. Hej. Var tittar du på den? Känner inte igen koden. Chansar på att det är C# i ASP.NET. Nja, jo det är en egen funkt, som sparar i databasen, jo jag spara med OLE Objekt binärt i databasen, så jag har allt i databasen separerat och klart med Content type osv, problemet är när jag läser upp det att jag inte kan få ut det rätt, alltså word öppnas med System.ByteSpara en binär fil i Access
så här är koden
int length = (int) FileUpload.PostedFile.InputStream.Length;
String contentType = FileUpload.PostedFile.ContentType;
byte[] content = new byte[length];
FileUpload.PostedFile.InputStream.Read(content, 0, length);
// Update the document within the Documents table
documents.UpdateDocument( moduleId, itemId, Context.User.Identity.Name, NameField.Text, PathField.Text, CategoryField.Text, content, length, contentType );
/JohanSv: Spara en binär fil i Access
Sv: Spara en binär fil i Access
Har själv aldrig gjort det där i Access, men skall det inte vara ett fält av datatypen ActiveX-objekt?? (OLE-object, tror jag det heter i en engelsk version)
//freddaSv: Spara en binär fil i Access
Försöker du spara filen i databasen. Eller mata ut den i fönstret?
Jag kan tyvär inte upp documents.UpdateDocument() Vad gör den?
Är det en egenskriven funktion för at spara dukumentet i databasen.
Eller matar den ut den till sidan?
Du bör bifoga koden som sparar filen i databasen och koden för att ladda ned dokumentet.
Du kan inte titta på filen i Access. Då måste du ha sparaten i som ActiveX objekt i Access.
Du använder korrekt fälttyp. Memo/PM är för stora texter. Medans ActiveX vält kan lagra binärdata. Kan man ju i och för sig göra i Memo/PM. Men är det kodade i Unicode får du fel om längenden inte är delbar på 2.Sv: Spara en binär fil i Access
så här ser koden ut och den funkar när jag kör den i en MS-SQL databas.
Dim dBContent As SqlDataReader = documents.GetDocumentContent(documentId)
dBContent.Read()
' Serve up the file by name
Response.AppendHeader("content-disposition", "filename=" & CStr(dBContent("FileFriendlyName")))
' set the content type for the Response to that of the
' document to display. For example. "application/msword"
Response.ContentType = CType(dBContent("ContentType"), String)
' output the actual document contents to the response output stream
Response.OutputStream.Write(CType(dBContent("Content"), Byte()), 0, CInt(dBContent("ContentSize")))
' end the response
Response.End()