我正在尝试使用C#MVC3中的.net版MPJX来读取MS项目文件。 我正在使用jQuery uploadify将文件上传到我的控制器。如何在C#MVC3中使用MPXJ .net读取.mpp文件?
现在,我的问题是如何从我的HttpPostedFileBase文件= Request.Files [0]中读取ProjectFile;读取文件时我收到异常,因为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);
}
}
任何帮助将不胜感激。
您能否将您的评论转移到答案中,并将答案标记为已接受?它将帮助其他未来有类似问题的人从您的经历中受益。非常感谢! Jon – 2012-08-10 12:26:01
好的@JonIles ...谢谢。 – dmc 2012-08-13 03:22:50