I solved this wrapping the file-select into the file-drop like this:
```
<div class="dropzone" ng2FileDrop [uploader]="uploader">
<div>Drop image here...</div>
<input type="file" ng2FileSelect [uploader]="uploader">
</div>
```
try this https://github.com/valor-software/ng2-file-upload/tree/development/demo/components/file-upload/zs-file-demo
I think code is more clear then use drop & select at the same time.
@fojt How to use this demo?
As your template include only <input> tag with style="display: none;", so I guess it is intended to use with other tag or component. I tried to use your DemoFileUploadComponent using <demo-file-upload></demo-file-upload> or <div DemoFileUploadComponent ...></div>, but I got error TypeError: Cannot read property 'isSkipSelf' of null.
@fojt How to use this demo?
As your template include only `<input>` tag with `style="display: none;"`, so I guess it is intended to use with other tag or component. I tried to use your DemoFileUploadComponent using `<demo-file-upload></demo-file-upload>` or `<div DemoFileUploadComponent ...></div>`, but I got error `TypeError: Cannot read property 'isSkipSelf' of null.`
I understand the error above occurs because, in short, FileUploader is not @injectable(). So I remove providers: [FileUploader], line and add @Input() public uploader:FileUploader; so as to get existing FIleUploader instance, and check using <demo-file-upload [uploader]="uploader"></demo-file-upload> from other sample-demo.html. Now I see how your component works.
Also it needs little fix for Firefox.
public onChange($event:any):void {
this.fileUploadService.addToQueue(($event.target || $event.srcElement).files);
}
I understand the error above occurs because, in short, FileUploader is not @injectable(). So I remove `providers: [FileUploader],` line and add `@Input() public uploader:FileUploader;` so as to get existing FIleUploader instance, and check using `<demo-file-upload [uploader]="uploader"></demo-file-upload>` from other sample-demo.html. Now I see how your component works.
Also it needs little fix for Firefox.
```
public onChange($event:any):void {
this.fileUploadService.addToQueue(($event.target || $event.srcElement).files);
}
```
I made this easy solution:
`<div class="dropzone" ng2FileDrop [uploader]="uploader" (click)=fileInput.click()>
Drop or Click to select files
</div>`
`<input type="file" #fileInput ng2FileSelect [uploader]="uploader" multiple style="display: none;"/>`
To implement it right way you just need to replace "div" with "lable" and wrap file input field with it.
Something like:
<label ng2FileDrop [uploader]="uploader" class="my-drop-zone">
Drag and Drop File Here
<input type="file" ng2FileSelect [uploader]="uploader" style="display: none" />
</label>
No need to use "click" at all
To implement it right way you just need to replace "div" with "lable" and wrap file input field with it.
Something like:
```
<label ng2FileDrop [uploader]="uploader" class="my-drop-zone">
Drag and Drop File Here
<input type="file" ng2FileSelect [uploader]="uploader" style="display: none" />
</label>
```
No need to use "click" at all
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Using drop zone uploader, is it possible that whenever i click inside drop zone it opens the window to select file and shows the uploaded file name?
+1
+1
oh, nice one
I solved this wrapping the file-select into the file-drop like this:
try this https://github.com/valor-software/ng2-file-upload/tree/development/demo/components/file-upload/zs-file-demo
I think code is more clear then use drop & select at the same time.
@fojt How to use this demo?
As your template include only
<input>tag withstyle="display: none;", so I guess it is intended to use with other tag or component. I tried to use your DemoFileUploadComponent using<demo-file-upload></demo-file-upload>or<div DemoFileUploadComponent ...></div>, but I got errorTypeError: Cannot read property 'isSkipSelf' of null.I understand the error above occurs because, in short, FileUploader is not @injectable(). So I remove
providers: [FileUploader],line and add@Input() public uploader:FileUploader;so as to get existing FIleUploader instance, and check using<demo-file-upload [uploader]="uploader"></demo-file-upload>from other sample-demo.html. Now I see how your component works.Also it needs little fix for Firefox.
I made this easy solution:
`<div class="dropzone" ng2FileDrop [uploader]="uploader" (click)=fileInput.click()>
`Drop or Click to select files
<input type="file" #fileInput ng2FileSelect [uploader]="uploader" multiple style="display: none;"/>Added the following styles to div to make it cleaner:
.point{
cursor: pointer;
}
.my-drop-zone:hover {
border: dashed 3px green;
}
To implement it right way you just need to replace "div" with "lable" and wrap file input field with it.
Something like:
No need to use "click" at all