2

私が掲示マルチパートフォームを受け入れ、(ハイライト表示されます)<formroot> XMLタグからデータを抽出しますAPIコントローラを必要とするASP.NET MVCプロジェクトを持っているマルチパートフォーム - ウェブAPI

私は苦労していますこの作業は、任意のヘルプは大幅に

enter image description here

をいただければ幸い現在、私はUploadControllerと呼ばれるコントローラを持っており、これは私が現在

を持っているコードです取得に3210

formrootからデータを取得する最も良い方法がわかりません。また、上記のコードのいずれかが間違っている場合は、私を許してください。

<form action="/Home/Upload" enctype="multipart/form-data" id="upload" method="post"> 
     @Html.AntiForgeryToken() 
     <input type="file" class="file" id="file" name="file" onchange="javascript:upload(this);" /> 
</form> 

PS:

+1

あなたはどこにいらっしゃいますか? POSTを書いていますか?コントローラ?メッセージを分析する?既にどんなコードをお持ちですか? –

+0

申し訳ありませんが、私の質問は曖昧でした、私は今編集し、肉体を外します –

+0

あなたはアップロードされたファイルのデータを取得したいのですか?これは正しいです? – Hypnobrew

答えて

0

または2など 今、あなたがXmlDocumentオブジェクトにファイルをロードして、好きなことから、必要なノードを抽出することができます - そして、あなたは機能があるものは何でも行うことができます

XmlDocument doc = new XmlDocument(); 
doc.Load(xmlFile.InputStream); 
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); 
nsmgr.AddNamespace("ab", "www.w3.org/2001/XMLSchema-instance"); 
XmlNode node = doc.SelectSingleNode("//ab:formroot", nsmgr); 

ノードに付属しています。

+0

あなたは最高です!私が必要なところに私を持ってきました –

+0

@Paul Coan Cheers man !! –

0

は、私はいつも、以下のソリューションを使用する "()をアップロード" javascript関数の形を投稿するjqueryのを使用しています。

function upload(obj) { 
    var p = $(obj).parent(); 
    if (p.get(0).tagName != 'FORM') { 
     p = p.parent(); 
    } 
    p.submit(); 
} 

私のコントローラでは、モデルバインダー "HttpPostedFileBase"として使用します。あなたが複数のファイルが掲載されている場合

HttpPostedFile xmlFile = HttpContext.Current.Request.Files[0]; 

、[0]、それぞれのカウント1でファイルを交換する - は:あなたは以下のコードを使用してXMLファイルにアクセスできるWeb APIコントローラ内部

[HttpPost] 
[ValidateAntiForgeryToken] 
public RedirectResult Upload(HttpPostedFileBase file) 
{ 
    try 
    { 
     //physical path there you will save the file. 
     var path = @"c:\temp\filename.txt"; 
     file.SaveAs(path); 
    } 
    catch (UploadException ex) 
    { 

    } 

    var url = "put here same url or another url"; 

    return RedirectResult(url); 
} 
関連する問題