Datei aus einer Datenbank zum Download anbieten

Written on December 13, 2004

Ein weiteres Snippet aus der Kategorie "braucht jeder irgendwann": Eine Datei, die in einer Datenbank zum liegt, zum Download anbieten:

FileClass file = FileClass.GetByGuid(new Guid(GuidFromQueryString));
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=filename.txt");
Response.AddHeader("Content-Length", file.FileContent.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.OutputStream.Write(file.FileContent,0,file.FileContentSize);
Response.End();

wobei FileClass wie folgt aussieht:

public class FileClass
{
private Guid guid;
private byte[] fileContent;
private int fileContentSize;

public Guid Guid {
get { return guid; }
set { guid = value; }
}

public byte[] FileContent {
get { return fileContent; }
set { fileContent = value; }
}

public int FileContentSize {
get { return fileContentSize; }
set { fileContentSize = value; }
}

public static FileClass GetByGuid(Guid Guid) {
// wandelt das DataSet in ein Objekt vom Typ FileClass und gibt es zurück
return DataSetToObject(DALFiles.GetByGUID(Guid));
}
}

Wie man aus dem String in der Datenbank ein byte[] erhält, steht im vorangegangenen Posting...