In meiner Anwendung verwende ich einen Aschx - Handler zum Download ppt, in dem ich einen Screenshot (aktuellen Bildschirm als Bild) erstellen und diesen Bildnamen an einen Handler (Ashx) von jQuery. Ich kann den Downloadstatus jedoch nicht verfolgen.Antwort zurück an Ajax von Aschx Handler in C#
Wenn es eine Möglichkeit gibt, Antwort von diesem Handler auf jquery zurückzugeben. Ich möchte wissen, wann das Herunterladen beendet wird.
mein aktuelles Szenario ist wie diese
jquery wird einen Base64-String erzeugen und diese Zeichenfolge passieren hinter von Ajax-Aufruf kodieren, das zu Bild konvertieren und das Bild an einem Ort speichern
auf den Erfolg Aufruf dieser Ajax-Anfrage wird es diesen Image-Namen erhalten und übergeben Sie diesen Image-Namen zu Handler
Ich rufe diesen Handler mit "window.location.href"
meinen Code
Ajax-Aufruf zum Speichern des Bildes
$.ajax({
type: "POST",
url: AQ.AMT.Url + "/Home/StoreImage",
//async: false,
data: "{'base64':'" + base64 + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (Data) {
window.location.href = "~/Download/Export.ashx?Type=PPT&downloadToken=" + Data.Result + "&Summary=" + summaryText + "&Note=" + noteText + "&Name=" + name + "&Sample=" + sampleSize + "&SampleColor=" + sampleColor + "&pptType=" + pptType + "&flipName=" + flipName;
//here i need some response
},
error: function (e) {
}
});
Handler Code für das Herunterladen der ppt
public void ProcessRequest(HttpContext context)
{
DownloadPPT(context);
}
public void DownloadPPT(HttpContext context)
{
//here i will take all parameters
try{
//downloading the ppt
saveFile(pres, "" + name + "-" + FlipName + "-" + System.DateTime.Today.ToLongDateString());//ppt name
}
catch{
}
finally
{
//after ppt download i am deleting that screenshot
if (File.Exists(path))
File.Delete(path);
}
}