C# MVC3에서 .net 버전의 MPJX를 사용하여 MS 프로젝트 파일을 읽으려고합니다. jQuery uploadify를 사용하여 파일을 내 컨트롤러에 업로드하고 있습니다.C# MVC3에서 MPX .net을 사용하여 .mpp 파일을 읽는 방법은 무엇입니까?
내 문제는 내 HttpPostedFileBase 파일에서 ProjectFile을 읽는 방법입니다. = Request.Files [0]; file.FileName에 브라우저 보안의 일부로 파일의 전체 경로가 포함되어 있지 않기 때문에 파일을 읽을 때 예외가 발생합니다. 만약 내가 좋았거나 적어도 Java에 대한 지식이 있다면, ProjectReader.read가 지원하는 유효한 매개 변수 중 하나이기 때문에 게시 된 파일을 java.io.file로 변환합니다.
아래 코드는 제가 가지고있는 코드입니다 (스레드의 코드는 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 –
Ok @JonIles ... 감사합니다. – dmc