По существу у меня есть тег img
с атрибутом src
/ChartImg.axd?i=chart_0_0.png&g=06469eea67ea452b977f8e73cad70691
. Нужно ли создавать другой WebRequest для получения содержимого этого ресурса или есть более простой способ?Как очистить содержимое ресурса axd?
Я очищаю вывод текущего запроса. Ниже приведено то, что у меня есть до сих пор ...
По существу мои добавочные ассембли будут содержать в некоторых случаях относительный Uri для ресурса .axd. Я хотел бы включить этот контент в архив, который я создаю.
private void ProcessPrintRequest()
{
this.Response.Clear();
this.Response.ContentType = "application/zip";
this.Response.AddHeader("Content-Disposition", "attachment;filename=archive.zip");
using (var stream = new ZipOutputStream(new ZeroByteStreamWrapper(this.Response.OutputStream)))
{
stream.SetLevel(9);
var additionalAssets = new PathNormailzationDictionary();
this.ExportDocument(stream, additionalAssets);
this.ExportAdditionalAssets(stream, additionalAssets);
}
this.Response.End();
}
private void ExportAdditionalAssets(ZipOutputStream stream, PathNormailzationDictionary additionalAssets)
{
var buffer = new byte[32 * 1024];
int read;
// TODO: Request content of .axd resources
foreach (var item in additionalAssets.Where(item => File.Exists(Server.MapPath(item.Key))))
{
var entry = new ZipEntry(item.Value);
stream.PutNextEntry(entry);
using (var fileStream = File.OpenRead(Server.MapPath(item.Key)))
{
while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
stream.Write(buffer, 0, read);
}
}
}
}
private void ExportDocument(ZipOutputStream stream, PathNormailzationDictionary additionalAssets)
{
var entry = new ZipEntry("index.html");
stream.PutNextEntry(entry);
var document = this.GetNormalizedDocument(additionalAssets);
var writer = new StreamWriter(stream);
writer.Write(document);
writer.Flush();
}
private string GetNormalizedDocument(PathNormailzationDictionary additionalAssets);