我有一个MVC 5控制器和一个C#控制台应用程序执行如下:
lp c:\excel.xls /xls
在使用Form:
上传XLS文件后,我需要执行此行 [HttpPost, ValidateAntiForgeryToken]
public virtual JsonResult UploadXLS(HttpPostedFileBase XLSFile)
{
var uploadDir = Server.MapPath("~/App_Data/");
if (XLSFile != null)
{
var originalFileExtension = Path.GetExtension(XLSFile.FileName);
var fileName = Guid.NewGuid().ToString() + originalFileExtension;
var filePath = Path.Combine(uploadDir, fileName);
XLSFilePartners.SaveAs(filePath);
// EXECUTE THE CONSOLE PROJECT HERE
return Json("Uploaded!", "text/html");
}
return Json("No File!", "text/html");
}
答案 0 :(得分:3)
要运行程序,您可以使用Process.Start
。您需要提供可执行文件的路径和参数:
Process.Start("lp.exe", "c:\\excel.xls /xls");
如果命令行参数包含空格(如文件路径),则需要将它们用引号括起来(并转义那些,因为它是一个字符串)。像这样:
"\"c:\\path with spaces\\excel.xls\" /xls"
请注意,这只会启动该过程 - 它不会等到它完成。如果您需要,请查看Process.WaitForExit
。
有关详细信息,请查看MSDN page。