Что я хочу сделать, так это то, что пользователь выбирает некоторые поля в сетке, и в соответствии с этими данными я создаю XML-файл на веб-сервере, а затем я хочу, чтобы пользователь загружал его, как при загрузке любого файла. Но проблема в том, что я не могу использовать этот код:
Response.ContentType = "APPLICATION/OCTET-STREAM";
// initialize the http content-disposition header to
// indicate a file attachment with the default filename
// "myFile.txt"
System.String disHeader = "Attachment; Filename=\"" + fileName +
"\"";
Response.AppendHeader("Content-Disposition", disHeader);
FileInfo downloadFile = new FileInfo(fileFullName);
if (downloadFile.Exists)
{
Response.WriteFile(downloadFile.FullName);
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
Поскольку мне нужно разрешить пользователю загружать 3 файла, чтобы заголовок не мог его обработать, я подумал, что нужно получить имена файлов и открыть всплывающее окно, перечислить имена файлов с помощью кнопки ссылки, а затем пользователь может загрузить ее.
Для каждого файла я создаю кнопку ссылки во время выполнения и добавляю этот код:
lnkProblem.Text = "Problemler dosyası";
lnkProblem.Visible = true;
lnkProblem.Command += new CommandEventHandler(lnkUser_Command);
lnkProblem.CommandName = Request.QueryString["fileNameProblems"];
lnkProblem.CommandArgument = Request.QueryString["fileNameProblems"];
Затем используйте эту функцию для загрузки пользователем:
void lnkUser_Command(object sender, CommandEventArgs e)
{
Response.ContentType = "APPLICATION/XML";
System.String disHeader = "Attachment; Filename=\"" + e.CommandArgument.ToString() +
"\"";
Response.AppendHeader("Content-Disposition", disHeader);
FileInfo downloadFile = new FileInfo(Server.MapPath(".") + "\\xmls\\" + e.CommandArgument.ToString());
if (downloadFile.Exists)
{
Response.WriteFile(Server.MapPath(".") + "\\xmls\\" + e.CommandArgument.ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
Приложение создает xml-файл, но где-то в нем приложение помещает html-теги в этот xml-файл, поэтому я не могу открыть этот файл, есть ли в любом случае это сделать? Может быть, любой другой пример ...