gpt4 book ai didi

c# - 如何在 C# MVC3 中使用 MPXJ .net 读取 .mpp 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:14 24 4
gpt4 key购买 nike

我正在尝试使用 C# MVC3 中的 .net 版 MPJX 读取 MS 项目文件。我正在使用 jQuery uploadify 将文件上传到我的 Controller 。

现在,我的问题是如何从我的 HttpPostedFileBase 文件中读取 ProjectFile = Request.Files[0];读取文件时出现异常,因为 file.FileName 不包含文件的完整路径作为浏览器安全的一部分。如果我擅长或至少了解 Java,那么我会将发布的文件转换为 java.io.file,因为它是 ProjectReader.read 支持的有效参数之一。

下面是我现在拥有的代码片段(从 Example of MPXJ library in C# 中的线程获取代码)。

 [HttpPost]
public JsonResult UploadTask(int ProjectType)
{
try
{
HttpPostedFileBase file = Request.Files[0];
MpxjReader.ProjectReader mppReader = MpxjReader.ProjectReaderUtility.getProjectReader(file.FileName);
Mpxj.ProjectFile mpp = mppReader.read(file.FileName);

List tables = mpp.getTables();
Iterator iter = tables.iterator();
while (iter.hasNext())
{
MpxjCore.Table table = (MpxjCore.Table)iter.next();
if (table.getResourceFlag())
{
List resources = mpp.getAllResources();
Iterator resourceIter = resources.iterator();
while (resourceIter.hasNext())
{
MpxjCore.Resource resource = (MpxjCore.Resource)iter.next();
List columns = table.getColumns();
Iterator columnIter = columns.iterator();
while (columnIter.hasNext())
{
MpxjCore.Column column = (MpxjCore.Column)columnIter.next();
Object columnValue = resource.getCachedValue(column.getFieldType());
Console.Write(columnValue);
Console.Write(",");
}
Console.WriteLine();
}
}
else
{
List tasks = mpp.getAllTasks();
// etc. as above
}
}

return Json(new { data = "success" }, JsonRequestBehavior.AllowGet);
}
catch
{
return Json(new { data = "error" }, JsonRequestBehavior.AllowGet);
}
}

如有任何帮助,我们将不胜感激。

最佳答案

更新:我已经解决了这个问题,方法是先将 .MPP 文件保存到指定的目录,然后从该目录读取(这是它在服务器中部署时的行为方式)。

关于c# - 如何在 C# MVC3 中使用 MPXJ .net 读取 .mpp 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com