Asp.net mvc 从MVC2中的文件夹下载文件时出错
我在获取下载提示时遇到问题。在下面的代码中,我首先允许用户上传一个文件进行压缩。文件压缩后,应向用户提供压缩文件。但在下面的代码下载提示符没有出现,也没有显示任何错误。请帮我更正代码 查看代码: } 控制器代码:Asp.net mvc 从MVC2中的文件夹下载文件时出错,asp.net-mvc,Asp.net Mvc,我在获取下载提示时遇到问题。在下面的代码中,我首先允许用户上传一个文件进行压缩。文件压缩后,应向用户提供压缩文件。但在下面的代码下载提示符没有出现,也没有显示任何错误。请帮我更正代码 查看代码: } 控制器代码: 问题是您正在使用Ajax。不能通过Ajax下载文件。您需要定期发布ActionMethod。通过这种方式,浏览器可以将文件发回,并提示用户将其保存到何处。我想要的是,每当用户单击compress link fileuploader时,都应该在ex function compressbo
问题是您正在使用Ajax。不能通过Ajax下载文件。您需要定期发布ActionMethod。通过这种方式,浏览器可以将文件发回,并提示用户将其保存到何处。我想要的是,每当用户单击compress link fileuploader时,都应该在ex function compressbox的模式框中打开它{var box=dhtmlx.modalbox{text:Select file Filename:,width:300px};}我怎样才能做到?如果我尝试使用模态框,则不会调用压缩操作
function CompressFile(box) {
var file = document.getElementById('fileComp');
if (file.value == "") {
alert("Choose a file to upload");
return false;
}
dhtmlx.modalbox.hide(box);
var fd = new FormData();
fd.append('file', file.files[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/FileUpload/Compress', true);
xhr.send(fd);
public ActionResult Compress(HttpPostedFileBase file)
{
var supportedType = new[] { "pdf" };
var fileExt = System.IO.Path.GetExtension(file.FileName).Substring(1);
var filename = Path.GetFileNameWithoutExtension(file.FileName) ?? "";
if (file.ContentLength > 0 && supportedType.Contains(fileExt))
{
string filePath = Path.Combine(HttpContext.Server.MapPath(_uploadPDF), Path.GetFileName(file.FileName));
file.SaveAs(filePath);
PdfReader reader = new PdfReader(filePath);
string name = DateTime.Now.ToString("ddMM_HHmmss");
name = Server.MapPath(_fileUploadPath + name + ".pdf");
PdfStamper stamper = new PdfStamper(reader, new FileStream(name, FileMode.Create), PdfWriter.VERSION_1_5);
stamper.FormFlattening = true;
stamper.SetFullCompression();
stamper.Close();
string fn = System.IO.Path.GetFileName(name);
return base.File(name, "application/pdf",fn);
}
else
{
return View();
}
}