string strPath = Server.MapPath("ProductImg/");
 FileUploadImg.SaveAs(strPath + FileUploadImg.FileName);
 productImg = strPath + FileUploadImg.FileName;//我要把路径存到数据库里面,前台来读取,可这里获取的是物理路径
我现在这样获取的路径成了带盘符的了...可这样不能用WEB访问呀,要怎么获取虚拟路径呢?

解决方案 »

  1.   

    虚拟路径不就是"ProductImg/"+FileUploadImg.FileName么?
      

  2.   

    不是,我现在运行是结果是D:\wwwroot\test\ProductImg\1.jpg这样的了
    在调式,用IIS部署都是这样的实物理路径了
      

  3.   

    <img src="ProductImg/1.jpg"【还是"~/ProductImg/1.jpg",忘了】 />
    得不到图片吗?
      

  4.   

    src="ProductImg/1.jpg" 怎么是物理路径呢?如果页面所在的文件夹里有个ProductImg文件夹,里面还有张1.jpg的图片的话就能显示。用静态html试就知道了。
      

  5.   

    所以你数据库里直接存ProductImg/1.jpg就行了啊。如果ProductImg这个文件夹是固定的话只用存文件名就行。
      

  6.   


    辛苦你的回复了,可感觉你没有看清我的问题,我的就是
    productImg = strPath + FileUploadImg.FileName;//我要把路径存到数据库里面,前台来读取,可这里获取的是物理路径我想知道是strPath + FileUploadImg.FileName这样是物理路径,而我要的是虚拟路径,不能手写路径进去..
      

  7.   

    确实不是很理解lz的意思。首先我还没见过数据库里存绝对路径的。如果lz是问已经存进去了,你是想把里面的绝对路径转成相对路径,那么,System.IO.Path.GetFileName(path)方法可以获得一个全路径的文件名,再进一步Path.GetFileName(Path.GetDirectoryName(path))可以获得其所在文件夹的名称。
    如果不是的话我实在猜不到lz想要做什么了。建议把问题描述得清楚点。
      

  8.   

    ftp和http根本是两个服务,这是行不通的,只能通过 设置[服务器前缀] 合并字符串 的方法得出http路径。
      

  9.   

    为什么不把content直接存SQLServer呢? 
    不难啊, 用nvarbinary(max)来存