Yani benim mesele şudur, Aşağıdaki kod var: bildiğim kadarıyla bu dosyayı bulma ve sonra edilmelidir söyleyebilirim ŞimdiVB.Net sadece dosya içeriğini almak, dosyayı indirmeye çalışma
<HttpGet>
Function downloadExtract(ByVal id As Integer, ByVal formatId As String)
Dim path = AppDomain.CurrentDomain.BaseDirectory + "/app_data/extracts/" + id.ToString + ".csv"
Dim file = New FileInfo(path)
If (file.Exists) Then
Response.ClearHeaders()
Response.ClearContent()
Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", file.Name))
Response.AddHeader("Content-Length", file.Length.ToString)
Response.ContentType = "application/x-download"
Response.TransmitFile(file.FullName)
Response.End()
Else
Return Nothing
End If
End Function
varsa, bazı yanıt üstbilgileri ayarlar ve dosyayı ters çevirir.
Şimdi aynı kod, projenin herhangi bir yerinde yukarıdaki kusursuz dosyayı yapar ve söz konusu dosyayı indirmeme izin verir, ancak şu anda kesinlikle hiçbir şey yapmıyormuş gibi görünen bir sorunum var.
Tarayıcılarımdaki dev konsolu kontrol etme Ajax isteğimin bu dönüşü yöneten denetleyiciye 200 ve tamamının iyi olduğunu görebiliyorum, başarılı istek ile burada hiçbir şey yapmadan bir şey arasında görebildiğim tek fark şu ki; Başarılı olan, bana cevap verisini gösteremediğini, oysa orada başını ikiye böldüğünü, bunun cevap verilerinin metin olarak dosya içeriğinin olduğunu ve bunun neden yapıldığına dair hiçbir fikrim olmadığını gösteriyor.
Günün en iyi kısmı için saçlarımı yırttım, şimdi herhangi bir yardım büyük bir memnuniyetle karşılanacaktır!
Ben geliştirici konsolunda bir çift daha farklılıkları fark ettik gönderme yana,
eser diyene türü: belge ve başlatıcı: Diğer
Bilmeyen diyor türü: xhr ve başlatıcı: jquery-1.9.1.js:
Çalışma: ilgili fonksiyonlardır çağırır JS dosyalarında 8526
kod
self.getExtract = function (outputId) {
$.ajax({
url: window.location + "/DownloadExtract",
data: {id: outputId}
});
};
Çalışmıyor:
self.downloadFile = function (id) {
$.ajax({
url: window.location + "/downloadExtract",
data: {id: self.extractId, formatId: self.format}
});
};
Ve durumunda herhangi bir fark vbhtml dosyalarda bağlar yapar şunlardır:
Çalışma:
<td><a href="/ListExtracts/DownloadExtract?id={{extract.id}}">Download</a></td>
Çalışmıyor:
<a target="_self" href="" ng-click="runExtract.downloadFile()"><i class="icon-download"> Download Extract</i>