Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 从MVC2中的文件夹下载文件时出错_Asp.net Mvc - Fatal编程技术网

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();
    }
}