Es stellt sich heraus, dass während der Entwicklung unseres Projekts (die Dateien werden in der Datenbank gespeichert) die heruntergeladenen Dateien in Form von http-Headern geschrieben werden. Wie folgt: Response.Clear();
Response.Buffer = false;
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fileWJNR.Rows[0]["WJM"].ToString(),System.Text.Encoding.UTF8));
Response.BinaryWrite(Byte-Stream);
Response.End();
Wenn der Benutzer jedoch nach der Bereitstellung im IE6.0 surft, wird es abgefangen und geschlossen und beendet. Zu diesem Zeitpunkt verwendete mein Kollege ein Popup-Formular und klickte dann im Popup-Formular auf „Zum Herunterladen klicken“, damit es nicht abgefangen werden konnte.
Ich habe eine direktere Lösung ausprobiert, die darin besteht, beim Klicken zunächst eine temporäre Datei zu generieren und dann einen Link zur temporären Datei zu erstellen. Das heißt, ein Dialogfeld zum Herunterladen oder Öffnen der Datei wird angezeigt. Der Code ist sehr einfach:
string fileName = „Dateiname“ // Datei-ID verwenden
string tempFilePath = Request.PhysicalPath;
tempFilePath = tempFilePath.Substring(0,tempFilePath.LastIndexOf("\"));
tempFilePath += " \temp\ " + fileName;
file
= new FileStream(tempFilePath,FileMode.OpenOrCreate,FileAccess.ReadWrite);
{
byte[] docBody = (byte[])fileWJNR.Rows[0]["WJNR"]; //Konvertierung
file.Write(docBody, 0, docBody.Length);
file.Close();
Response.Redirect("temp\" + fileName);
}
fangen
{
file.Close();
}