teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

自己解決方法を追記しました

2020/04/17 04:36

投稿

tsunenori
tsunenori

スコア9

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
  |-favicon.ico
17
17
 
18
18
  テキストファイルの読み込みは以下のようなコードでレスポンスしています。
19
- ```Dart
19
+ ```dart
20
20
  fileHandler(HttpRequest request) async {
21
21
  String fileName = "assets" + request.uri.path;
22
22
  String mimeType = mime.lookupMimeType(fileName);
@@ -26,4 +26,23 @@
26
26
  ..write(fileText);
27
27
  ..close()
28
28
  }
29
+ ```
30
+
31
+ 【2020/04/17追記】
32
+ 以下の方法で自己解決しました
33
+ ```dart
34
+ String mimeType = lookupMimeType(fileName);
35
+ if (mimeType == null) mimeType = 'text/plain; charset=UTF-8'; // default
36
+ print("mimeType = " + mimeType);
37
+
38
+ // ファイルを読み取る
39
+ final bytes = await rootBundle.load(fileName);
40
+ final buffer = bytes.buffer;
41
+
42
+ //レスポンスを作成
43
+ request.response
44
+ ..headers.set('Content-Type', mimeType)
45
+ ..statusCode = HttpStatus.ok
46
+ ..add(buffer.asInt8List())
47
+ ..close();
29
48
  ```

1

テキストファイルのレスポンス処理のコードを追加

2020/04/17 04:36

投稿

tsunenori
tsunenori

スコア9

title CHANGED
File without changes
body CHANGED
@@ -13,4 +13,17 @@
13
13
  |-js
14
14
  ||-example.js
15
15
  |-index.html
16
- |-favicon.ico
16
+ |-favicon.ico
17
+
18
+ テキストファイルの読み込みは以下のようなコードでレスポンスしています。
19
+ ```Dart
20
+ fileHandler(HttpRequest request) async {
21
+ String fileName = "assets" + request.uri.path;
22
+ String mimeType = mime.lookupMimeType(fileName);
23
+ String fileText = await rootBundle.loadString(fileName);
24
+ request.response
25
+ ..headers.set('Content-Type', mimeType);
26
+ ..write(fileText);
27
+ ..close()
28
+ }
29
+ ```