首页 新闻 搜索 专区 学院

webform和winform共用一个文件夹

0
悬赏园豆:100 [已关闭问题] 关闭于 2011-04-26 09:36

我有两个项目  一个是winform的 一个是webform  ,我想让webform调用winform这个项目下的图片 应该怎么办,能不能给一个解决办法?或者还有什么建议,谢谢啦

问题补充: 哪个大大帮我出个主意啊
biubiubiu的主页 biubiubiu | 初学一级 | 园豆:114
提问于:2011-04-20 11:33
< >
分享
所有回答(8)
0

基本没辙,图片统一放在一个站点上好了

xutao888 | 园豆:254 (菜鸟二级) | 2011-04-20 11:57
0

webform调用的图片必须发布出来

麦田里的守望者 | 园豆:428 (菜鸟二级) | 2011-04-20 12:45
0

把图片统一放到一个FTP上算了!

Justin.zhang | 园豆:440 (菜鸟二级) | 2011-04-20 14:01
0

winform这个项目下的图片文件夹放到webform的虚拟目录下

john23.net | 园豆:930 (小虾三级) | 2011-04-20 15:02
0

放到一个公用的站点上...提供其他项目共同调用....

xp_Tiffany | 园豆:305 (菜鸟二级) | 2011-04-21 14:16
0

可以利用 本地访问的方式,以流的方式输出 到WebForm上。

Liujx | 园豆:9 (初学一级) | 2011-04-21 16:18
0

在什么情况下有这个需求呢?

如果必须这样,其实楼上的几位已经提供了解决方案

1、winform这个项目下的图片文件夹放到webform的虚拟目录下

这样需要winform和webform二套系统必须放在同一个server下,或者通过UNC之类的方法部署在不同的server上

2、图片在webform内,然后winform通过访问指定图片的路径,得到图片流,在winform系统内转换为图片显示

上不了岸的鱼 | 园豆:4611 (老鸟四级) | 2011-04-25 16:34
0

你的需求是 webform 要用非web目录下的图片对吗?
如果是的话,这样解决:
写一个 getimage.ashx , 用传入的图片名去读取图片文件,然后用 Response 写给客户端。比如你的图片在 D:\WB\Images, webform 的主目录在别的任意地方。
以下为 getImage.ashx 的代码,把它放到webform根目录下:
<%@ WebHandler Language="C#" class="ImageLoader" %>
using System;
using System.IO;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
    public class ImageLoader : IHttpHandler
    {

        protected HttpContext Context = null;
        protected HttpRequest Request = null;
        protected HttpResponse Response = null;
        public void ProcessRequest(HttpContext context)
        {
             Context = context;
            Request = context.Request ;
            Response = context.Response ;
            Response.ContentType = "image/gif"; //这里根据你得图片的类型修改
            string PhysicalFilePath = @"D:\WB\images\"; //这里改成你实际的路径,也可以存在web.config里面,用的时候去读           
            string PhysicalFileName = PhysicalFilePath + Request.QueryString["fn"] + ".gif" ;  //扩展名也可以在QueryString里面直接传递
            string sHeader = string.Format("attachment;filename={0}", Request.QueryString["fn"]);
            Response.ClearHeaders();
            Response.AppendHeader("Content-disposition", sHeader);   
            if (!File.Exists(PhysicalFileName)) Response.End();
            else WriteFile(PhysicalFileName);
        }
       protected void WriteFile(string PhysicalFileName)
        {
            FileStream fsin = new FileStream(PhysicalFileName, FileMode.Open, FileAccess.Read);
            long FileSize = fsin.Length;
            byte[] Buffer = new byte[(int)FileSize];
            fsin.Read(Buffer, 0, (int)FileSize);
            fsin.Close();
            Response.BinaryWrite(Buffer);
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

在 webform 里面要用这个图片,比如用 D:\WB\Images\logo.gif, 只要写
<img src="getImage.ashx?fn=logo" />
就可以了。

欧阳凝舞945522826 | 园豆:363 (菜鸟二级) | 2011-04-25 21:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册