【问题标题】:Best way to pass image to server?将图像传递到服务器的最佳方式?
【发布时间】:2010-05-24 12:46:38
【问题描述】:

我有一个 SL3 应用程序,它需要能够将图像传递给服务器,然后服务器会生成一个包含该图像的 PDF 文件,并将其显示给用户。

我已经拥有以下内容:

(1) 将图像转换为字节数组的代码 (2) 生成带图片的PDF文件的代码

我遇到的主要问题如下:

为了绕过弹出窗口拦截器,这是我的应用程序的要求,我使用以下代码:

var button = new NavigationButton();

button.NavigateUri = new Uri("http://localhost:3616/PrintReport.aspx?ReportIndex=11&ActionType=Get&ReportIdentifier=" + reportIdentifier.ToString() + "");

button.TargetName = "_blank";

button.PerformClick();

最初,我会将图像传递给 WCF Web 服务(作为字节数组),然后“导航”到显示报告的 ASP.NET 页面。但是,如果我这样做,那么我将无法使用我的自定义 HyperlinkBut​​ton 类,并且某些浏览器(包括 Safari)会阻止新窗口打开。因此,似乎唯一的选择是使用 HyperlinkBut​​ton 类。

我需要做的是以某种方式将图像作为字节数组或其他数据类型传递给服务器,以便它可以临时存储图像,即使它在服务器变量中,然后在我导航到 PrintReport.aspx 页面时立即检索它。

如果我将图像上传到 ASP.NET 表单,然后使用 HyperlinkBut​​ton 类导航到 PrintReport 页面,它不起作用,因为应用程序在系统完成上传图像之前导航到 PrintReport 页面。我无法将它传递给 Web 服务,因为这需要我导航到我将传递图像的 Web 方法的回调代码中的 PrintReport.aspx 页面,并且 HyperlinkBut​​ton 不允许这样做,基于关于安全规则。

任何帮助或想法将不胜感激。

谢谢。

克里斯

【问题讨论】:

    标签: c# asp.net silverlight silverlight-3.0


    【解决方案1】:

    听起来您的问题与图片上传无关,而与使用有关 只需单击一下即可上传并导航到显示报告的页面,如果是这种情况,那么在报告页面本身处理图像上传可能是可行的方法。

    Upload files with HTTPWebrequest (multipart/form-data)

    显示如何上传到标准的 aspx 页面

    至于让 web 服务方法工作,我想说你在这里缺少的拼图是 WCF ASP 兼容模式。

    这使您能够访问 wcf 服务中的 httpcontext。当然,问题是您将服务与 ASP 耦合......

    查看此处http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx,了解有关 ASP 兼容模式的更多详细信息。

    你的流程就变成了:

    上传到Webservice -> 添加到缓存

    导航到页面 -> 从缓存中检索

    希望这些建议之一有所帮助

    如果没有,请回复我!

    【讨论】:

    • 你的理解是正确的。如果我上传到 Web 服务,那么合乎逻辑的方法是在图像数据上传完成后导航到显示报告的页面。您不能使用回调方法等中的 HyperlinkBut​​ton Navigation 方法...与 Silverlight 中的安全措施有关。所以,我仍然试图弄清楚如何通过单击上传图像数据并使用 HyperlinkBut​​ton,打开一个新窗口并浏览到另一个页面。
    • K,我将研究 AutomationPeers 命名空间...这允许您模拟用户操作(再次安全可能意味着超链接按钮没有自动化对等体)...看起来像您'将不得不做一些花哨的服务器端,在图像完全上传之前不要让reportpage呈现......我现在正在工作并且没有silverlight dev env,但是当我回到家时我会给这是一个镜头,让你知道。
    猜你喜欢
    • 2013-10-11
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2016-07-20
    • 1970-01-01
    • 2012-08-13
    • 2013-04-19
    相关资源
    最近更新 更多