diff --git a/README.md b/README.md
index 29c60c3..2cc7e4a 100644
--- a/README.md
+++ b/README.md
@@ -70,7 +70,7 @@ React.render(, container);
|component | "div"|"span" | "span"| wrap component name |
|action| string | function(file): string | Promise<string> | | form action url |
|method | string | post | request method |
-|directory| boolean | false | support upload whole directory |
+|directory| boolean \| 'nonClick' | false | support upload whole directory, 'nonClick' means unSupport click to upload directory |
|data| object/function(file) | | other data object to post or a function which returns a data object(a promise object which resolve a data object) |
|headers| object | {} | http headers to post, available in modern browsers |
|accept | string | | input accept attribute |
diff --git a/docs/demo/dragOnlyDirectory.md b/docs/demo/dragOnlyDirectory.md
new file mode 100644
index 0000000..7da3a04
--- /dev/null
+++ b/docs/demo/dragOnlyDirectory.md
@@ -0,0 +1,9 @@
+---
+title: dragOnlyDirectory
+nav:
+ title: Demo
+ path: /demo
+---
+
+
+
diff --git a/docs/examples/dragOnlyDirectory.tsx b/docs/examples/dragOnlyDirectory.tsx
new file mode 100644
index 0000000..6e1471a
--- /dev/null
+++ b/docs/examples/dragOnlyDirectory.tsx
@@ -0,0 +1,44 @@
+/* eslint no-console:0 */
+import React from 'react';
+import Upload from 'rc-upload';
+
+const props = {
+ action: '/upload.do',
+ type: 'drag',
+ directory: 'nonClick' as 'nonClick',
+ beforeUpload(file, fileList) {
+ console.log('beforeUpload', file.name, fileList);
+ },
+ onStart: file => {
+ console.log('onStart', file.name);
+ },
+ onSuccess(file) {
+ console.log('onSuccess', file);
+ },
+ onProgress(step, file) {
+ console.log('onProgress', Math.round(step.percent), file.name);
+ },
+ onError(err) {
+ console.log('onError', err);
+ },
+ style: { display: 'inline-block', width: 200, height: 200, background: '#eee' },
+ // openFileDialogOnClick: false
+};
+
+const Test = () => {
+ return (
+
+ );
+};
+
+export default Test;
diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx
index 01fee9a..3a8eefd 100644
--- a/src/AjaxUploader.tsx
+++ b/src/AjaxUploader.tsx
@@ -335,7 +335,7 @@ class AjaxUploader extends Component {
});
// because input don't have directory/webkitdirectory type declaration
const dirProps: any =
- directory || folder ? { directory: 'directory', webkitdirectory: 'webkitdirectory' } : {};
+ directory === true || folder ? { directory: 'directory', webkitdirectory: 'webkitdirectory' } : {};
const events = disabled
? {}
: {
diff --git a/src/interface.tsx b/src/interface.tsx
index 528c083..ce5c962 100644
--- a/src/interface.tsx
+++ b/src/interface.tsx
@@ -14,7 +14,7 @@ export interface UploadProps
action?: Action;
method?: UploadRequestMethod;
/** @deprecated Please use `folder` instead */
- directory?: boolean;
+ directory?: boolean | 'nonClick';
folder?: boolean;
data?: Record | ((file: RcFile | string | Blob) => Record);
headers?: UploadRequestHeader;