使用OpenXml打开,修改然后保存docx文档。代码(未显示)将打开文档,修改,我可以将其直接保存到直接路径。但是找不到如何让用户保存文件AS对话框工作? 无法找到类型或命名空间名称“SaveFileDialog”(您是否缺少using指令或程序集引用?)
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
Response.Clear();
Response.ContentType = "application/octet-stream";
string fileNamewrite =(string) (Session["FileNameFromUser"]);
Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}",fileNameout));
Response.BinaryWrite(mem.ToArray());
Response.Flush();
Response.End();
SaveFileDialog是我希望使用的一种方法,但找不到任何类似的方法。
甚至尝试使用漂亮的图形安装引导程序对话框? http://getbootstrap.com/javascript/#modals这个工作了几次,然后在修改以适应我的代码后,按钮点击什么也没做。我回到原来并粘贴,保存,仍然什么都不做。
控制器修改了字节数组,因此在Response.Clear();到最后,这部分运行并保存文件,但它必须是一个用户对话框保存文件作为接口,从用户返回文字字符串路径?
控制器可以看到类似于SaveCileDialog for MVC的方法吗?
编辑: 浏览器设置阻止了对话框,它只会保存到/ Downloads文件夹而不提示。秘密在于其中一个响应标头或内容设置,浏览器将自动生成saveFileAs对话框。在WinForms中,它是手动完成的...这种方法有效,尽管它可能有冗余:
public FileContentResult GetFile(byte[] m)
{
string mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
string filenam = "output.docx";
byte[] fileContent = null;
fileContent = m; //["FileContent"];
///////////////////////////
Response.Clear();
FileInfo file = new FileInfo(fileNameout);
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.TransmitFile(file.FullName);
// string fileNamewrite = (string)(Session["FileNameFromUser"]);
// Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", fileNameout));
Response.Flush();
Response.End();
return File(fileContent, mimeType, filenam); //pass contents as bytes[] , your mimetype , and the file name save as.
}
答案 0 :(得分:0)
SaveFileDialog是一个Windows原生app应用程序,而不是Web应用程序。
简单地说......你不能强迫用户看到保存对话框,因为它取决于他们在浏览器中看到的浏览器和设置。
如果用户选择保存文件, content-disposition
仅建议默认文件名!浏览器使用content-type
标头来确定要执行的操作。