diff --git a/src/uploader/README.md b/src/uploader/README.md
index 0bed95ecf..98de96e78 100644
--- a/src/uploader/README.md
+++ b/src/uploader/README.md
@@ -214,3 +214,4 @@ Use [ref](https://vuejs.org/v2/api/#ref) to get Uploader instance and call insta
 | Name | Description | Attribute | Return value |
 |------|------|------|------|
 | closeImagePreview | Close full screen image preview | - | - |
+| chooseFile | Trigger choosing files, works with the user action context only because of browser security | - | - |
diff --git a/src/uploader/README.zh-CN.md b/src/uploader/README.zh-CN.md
index 069124b76..bd8ade664 100644
--- a/src/uploader/README.zh-CN.md
+++ b/src/uploader/README.zh-CN.md
@@ -239,3 +239,4 @@ before-read、after-read、before-delete 执行时会传递以下回调参数:
 | 方法名 | 说明 | 参数 | 返回值 |
 |------|------|------|------|
 | closeImagePreview | 关闭全屏的图片预览 | - | - |
+| chooseFile | 主动调起文件选择,由于浏览器安全限制,只有在用户触发操作的上下文中调用才有效 | - | - |
diff --git a/src/uploader/index.js b/src/uploader/index.js
index 61efd07f7..280398633 100644
--- a/src/uploader/index.js
+++ b/src/uploader/index.js
@@ -247,6 +247,17 @@ export default createComponent({
       }
     },
 
+    // @exposed-api
+    chooseFile() {
+      if (this.disabled) {
+        return;
+      }
+      /* istanbul ignore else */
+      if (this.$refs.input) {
+        this.$refs.input.click();
+      }
+    },
+
     genPreviewMask(item) {
       const { status } = item;
 
diff --git a/types/uploader.d.ts b/types/uploader.d.ts
index e31434eca..e518ed97b 100644
--- a/types/uploader.d.ts
+++ b/types/uploader.d.ts
@@ -2,4 +2,6 @@ import { VanComponent } from './component';
 
 export class Uploader extends VanComponent {
   closeImagePreview(): void;
+
+  chooseFile(): void;
 }