Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.net将PDF从服务器复制到客户端源_Javascript_C#_Asp.net_Pdf_Extjs - Fatal编程技术网

Javascript ASP.net将PDF从服务器复制到客户端源

Javascript ASP.net将PDF从服务器复制到客户端源,javascript,c#,asp.net,pdf,extjs,Javascript,C#,Asp.net,Pdf,Extjs,我目前正在开发一个系统,我想将一个PDF文件从我的服务器复制到客户端的源代码中,这样就可以在嵌入标记中打开它 到目前为止,我有以下服务器代码 [HttpGet("printpdf")] public HttpResponse getPDF() { System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clea

我目前正在开发一个系统,我想将一个PDF文件从我的服务器复制到客户端的源代码中,这样就可以在
嵌入
标记中打开它

到目前为止,我有以下服务器代码

[HttpGet("printpdf")]
public HttpResponse getPDF()
{
    System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
    response.ClearContent();
    response.Clear();
    response.ContentType = "application/pdf";
    response.AddHeader("Content-Disposition", "attachment; filename=preview.pdf;");
    response.TransmitFile("preview.pdf");
    response.Flush();
    response.End();
    return response;
}
它通过
extJS
这样从客户端调用

Ext.define('RibbonMenu.view.dialogues.Print', {
    extend: 'Ext.window.Window',
    mixins: {
        controlDisabler: 'RibbonMenu.view.ribbon.controls.ControlDisabler'
    },
    title: 'Print Preview',
    height: 800,
    width: 800,
    layout: 'fit',
    constrain: true,

    items: [{
        xtype: 'component',
        autoEl: {
            tag: 'embed',
            type: 'application/pdf',
            src: Ext.Ajax.request({
                    url: "/printpdf?",
                    method: "GET",
                    success: function (response, opts) {
                        console.log("Receieved PDF");
                        var pdf = response;
                        console.log(pdf)
                        return pdf
                    },
                    failure: function (response, opts) {
                        console.log("Failed to receive PDF")
                        console.log(response.status);
                    }
                })

        }}]

});
很明显,这是不对的,因为我的嵌入标记的src属性

src="id:1;xhr:[object XMLHttpRequest];headers:[object Object];options:[object Object];async:true;binary:false;timeout:26;"
所以,我希望找到一种方法,将这个pdf从服务器复制到客户端的源代码中,而不是仅仅传递一个pdf对象

编辑

值得一提的是,此功能旨在通过让用户的浏览器处理pdf的打印/查看来用于打印预览。考虑到这一点,这个文件拷贝给用户意味着是一个临时拷贝,它只存在于页面上的会话中,只有试图打印的用户才能看到它

编辑

我想把PDF复制到源文件中。在下图中的文件结构的某个地方,我可以创建一个硬URL来指向嵌入标记


您需要在某个公共场所托管pdf,并用文件的url填充src属性

<embed src="https://your.domain/pdf/your_pdf_file.pdf">
并将url返回到响应中的文件

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.Write(targetPath);
response.Flush();
response.End();
return response;

我明白。这就是我正在努力实现的目标。请参阅我的编辑这会使PDF仅对单个用户可用吗?无论我提出哪种解决方案,都需要让每个用户只看到与他们相关的PDF。不,任何知道url的人都可以使用它。你应该用这些新信息更新你的问题
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.Write(targetPath);
response.Flush();
response.End();
return response;