Javascript 使用embed或iframe在模式中使用angular 4进行上传前预览

Javascript 使用embed或iframe在模式中使用angular 4进行上传前预览,javascript,node.js,html,angular,Javascript,Node.js,Html,Angular,我对这段代码有问题,因为弹出窗口: @component public visualizarArquivo(file): void { var url = window.URL.createObjectURL(file); var a = document.createElement("a"); a.setAttribute("href", url); a.setAttribute("target", "_blank"); a.click(); } @

我对这段代码有问题,因为弹出窗口:

@component
public visualizarArquivo(file): void {
    var url = window.URL.createObjectURL(file);
    var a = document.createElement("a");
    a.setAttribute("href", url);
    a.setAttribute("target", "_blank");
    a.click();
}


@html
<div class="col-md-6">
    <fieldset class="form-group">
        <label for="exampleInputFile">{{ 'Foto 3x4' | translate }}</label>
        <input type="file" class="form-control-file" id="inputFileFoto" #arquivophoto accept=".pdf,.jpg,.jpeg,.png (change)="onFileChange($event)">
    </fieldset>

    <button id="view" type="button" class="btn btn" (click)="openPhoto(contentPhoto)">
        <span class="fa fa-eye"></span>
    </button>
</div>
@组件
公共可视化Arquivo(文件):无效{
var url=window.url.createObjectURL(文件);
var a=document.createElement(“a”);
a、 setAttribute(“href”,url);
a、 setAttribute(“目标”,“空白”);
a、 单击();
}
@html
{{'Foto 3x4'| translate}

如果您喜欢使用这两种方法中的一种,那么您的代码将是这样的-

方法1:使用-


{{'Foto 3x4'| translate}
导出类AppComponent{//或您的组件
localUrl:any[];
isImage=false;
isPdf=假;
构造函数(){}
showPreview(事件:任何){
if(event.target.files&&event.target.files[0]){
if(event.target.files[0].type==“application/pdf”){
isImage=true;
isPdf=false;//必需,继续
}
否则{
isPdf=真;
isImage=false;//必需,继续
}
var reader=new FileReader();
reader.onload=(事件:any)=>{
this.localUrl=event.target.result;
}
reader.readAsDataURL(event.target.files[0]);
}
}
}
方法2:使用IFrame

<input type="file" class="form-control-file" id="inputFileFoto" #arquivophoto accept=".pdf,.jpg,.jpeg,.png" (change)="showPreview($event)">
<div class="embed-responsive embed-responsive-4by3">
    <iframe class="embed-responsive-item" [src]="localUrl"></iframe>
</div>

export class AppComponent {          // or your component
    localUrl: any[];
    constructor() { }
    showPreview(event: any) {
        if (event.target.files && event.target.files[0]) {
            var reader = new FileReader();
            reader.onload = (event: any) => {
                this.localUrl = event.target.result;
            }
        }
    }
}

导出类AppComponent{//或您的组件
localUrl:any[];
构造函数(){}
showPreview(事件:任何){
if(event.target.files&&event.target.files[0]){
var reader=new FileReader();
reader.onload=(事件:any)=>{
this.localUrl=event.target.result;
}
}
}
}

你可以在模态中显示它!为了基本的理解,我在
div

中展示了它,它的可能副本可能会有所帮助,并且有条件地将其用于pdf-
<input type="file" class="form-control-file" id="inputFileFoto" #arquivophoto accept=".pdf,.jpg,.jpeg,.png" (change)="showPreview($event)">
<div class="embed-responsive embed-responsive-4by3">
    <iframe class="embed-responsive-item" [src]="localUrl"></iframe>
</div>

export class AppComponent {          // or your component
    localUrl: any[];
    constructor() { }
    showPreview(event: any) {
        if (event.target.files && event.target.files[0]) {
            var reader = new FileReader();
            reader.onload = (event: any) => {
                this.localUrl = event.target.result;
            }
        }
    }
}