0

type="file"のタグと、Ajaxを使用してファイルをWebAPIエンドポイントに送信する機能があります。

Ajaxを使用してHTML入力からWebApiにファイルを送信する - エンコーディングの問題

$('#myInput').change(function() { 
    if (this.files[0] === undefined) return; 
    sendToWebapi(this.files[0]); 
    this.value = null; 
}); 

function sendToWebapi(file) { 
    const data = new FormData(); 
    data.append('file', file); 
    $.ajax({ 
     url: "myWebApiPath", 
     contentType: "text/csv", 
     processData: false, 
     method: "POST", 
     data: data 
    }); 
} 

私の問題はWEBAPIに送信されたときにフランス語の文字が適切にエンコードされていないということです。リクエストボディのエキス以下を参照してください。

> ------WebKitFormBoundaryggBmtBMylhc9eoIE 
Content-Disposition: form-data; name="file"; filename="myfile.csv" 
Content-Type: application/vnd.ms-excel 

Date;Pi�ce;Journal;Libell�;D�bit;Lettrage;Cr�dit;Solde 
.... 

答えて

0

明示的に文字セットを設定してみてください:文字セットを追加することが明示的に私のリクエストボディが正しく表示されているが生じている間、私のエンドポイントは、まだ以前のように文字列を見ていること

function sendToWebapi(file) { 
    const data = new FormData(); 
    data.append('file', file); 
    $.ajax({ 
     url: "myWebApiPath", 
     contentType: "text/csv;charset=ISO-8859-1", 
     processData: false, 
     method: "POST", 
     data: data 
    }); 
} 
+0

注意。 –

+0

@François "私のエンドポイントは以前と同じように文字列を表示します"とはどういう意味ですか? – Oscar

+0

Myenpoint署名はTask MyEndpointAsync([FromBody] List 行)です。それから、行の各行はD bitのようなものを参照します。 –

関連する問題