Browse Source

Node.js day3:实现文件上传

daxia 2 năm trước cách đây
mục cha
commit
1e1951af76
1 tập tin đã thay đổi với 25 bổ sung0 xóa
  1. 25 0
      19_Node.js/Koa快速入门.md

+ 25 - 0
19_Node.js/Koa快速入门.md

@@ -240,3 +240,28 @@ export default router;
 
 ### 3.6 文件上传
 
+> `koa-body`内置支持文件上传。
+
+但是默认是没有开启请求体`multipart/form-data`类型的解析,在对应上传文件的路由上需要单独配置。像这样,
+
+```js
+// 上传文件
+router
+  .put(
+    '/upload',
+    koaBody({
+      multipart: true,
+      formidable: {
+        uploadDir: './public', // 文件上传后位置
+        keepExtensions: true, // 保留原文件的后缀名
+      },
+    }),
+    (ctx) => {
+      // 获取待上传的文件
+      // 通过ctx.request.files 获取上传后文件的相关信息,比如newFilename 为 上传文件后的新名称
+      console.log(ctx.request.files);
+      ctx.body = `/${ctx.request.files.file.newFilename}`;
+    }
+  );
+```
+