+ -
当前位置:首页 → 问答吧 → 图片在客户端无法显示!

图片在客户端无法显示!

时间:2011-12-24

来源:互联网

图片不再工程文件下,而是在服务器的D:\A\ab 的文件夹中 A文件夹已经设置好了安全账户

服务器浏览没问题!
  代码大体如下
C# code

 string pt = "D:\A\ab";
Response.Write(Image(@pt));
private string Image(string filePath)
{
...//读取文件代码
.....
sb.Append("<div class='box'><img id='ManImage' src='st.aspx?path=" + fi.FullName + "' onmousewheel='return bbimg(this)' width='124' height='100' runat='server'/><p></p></div>");
}
return sb.ToString();


另外一个画面[st.aspx]
C# code

protected void Page_Load(object sender, EventArgs e)
{
Response.BinaryWrite(this.GetImage(Request.QueryString["path"]));
}
//图片显示
        private byte[] GetImage(string path)
        {

            using (System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                using (System.IO.BinaryReader reader = new System.IO.BinaryReader(fs))
                {
                    return reader.ReadBytes((int)fs.Length);
                }
                fs.Close();
            }
        }




求解..

作者: waCtr   发布时间: 2011-12-24

基于安全理由,只能放在IIS站点里面才可以访问。
如果确实需要可以设置那个路径为虚拟路径或者网站,然后设置控件的ImageUrl时设置为图片的url
不是物理路径。

作者: wuyq11   发布时间: 2011-12-25

不要随便访问网站以外的目录。你想,如果每一个人都可以随便损毁别人的文件,甚至系统文件,那么网站空间商怎么运营?所以正规的web服务器软件一定默认是安全的。能够默认允许你访问网站以外目录的,都是业余的系统。

在你开发时,那些不希望被下载,或者经常变动的文件,应该放在网站app_data目录下,程序中使用C# code
Server.MapPath("~/app_data/abc.xml")
这类方法取得文件的磁盘路径。

作者: sp1234   发布时间: 2011-12-25

····

作者: bingojm   发布时间: 2011-12-25

你在开发时使用vs的内置集成web调试器,此时可以访问网站以外的目录。别忘了这个web服务系统只是用来调试用的,不是正规web服务的。

作者: sp1234   发布时间: 2011-12-25

web开发请用相对路径。

作者: chen_ya_ping   发布时间: 2011-12-25

下载文件的常见方法,可以搜索:http://www.google.com.hk/search?sourceid=chrome&ie=UTF-8&q=asp.net+%E4%B8%8B%E8%BD%BD
另外,其实下载一个已知类型的文件,不是弄一个 BinaryWrite 完事。例如你最好需要识别文件扩展名,然后向Response中写入消息头content-type,例如写入“gif/image”等。而且你应该注意是否为Response的content-length写入了正确的长度信息,这其实非常重要,不应该轻易忽视。

如果你是开发一个实用的web下载程序,你必定应该重视首先去检测用户请求下载资源时有没有提供 If-Modified-Since 消息头。如果有,那么你可能需要直接返回 304 状态而不是去下载什么 byte[]。因为网站经常要给同一个会话重复下载相同的内容,特别是大量图片,这关乎你的网站的客户端体验。

作者: sp1234   发布时间: 2011-12-25

在当前web站点下创建虚拟路径,
设置属性,选择“另一台计算机上的共享”,并输入文件服务器的目标路径的用户名及其密码
图示如下:

作者: microtry   发布时间: 2011-12-25

设置好后,就可以通过虚拟路径访问文件服务器路径了

作者: microtry   发布时间: 2011-12-25