将图像保存到服务器

时间:2014-05-15 23:19:54

标签: c# asp.net file-upload

您好我现在可以使用此功能将图像保存到我的服务器:

    HttpPostedFile filePosted = CategoryImage.PostedFile;
            string fullPath = "";

            if (filePosted != null && filePosted.ContentLength > 0)
            {
                int contentLength = CategoryImage.PostedFile.ContentLength;
                string contentType = CategoryImage.PostedFile.ContentType;

                string filename = filePosted.FileName;
                string fileextension = Path.GetExtension(filename);

                fullPath = Server.MapPath(Path.Combine("~/img/logos/", filename));

                if (fileextension == ".jpg" || fileextension == ".jpeg" || fileextension == ".png" || fileextension == ".bmp")
                {
                    CategoryImage.PostedFile.SaveAs(fullPath);
                }
            }

但我的数据库中的图像路径保存为:

D:\Projects\*************\****\img\logos\image1.png

现在,当我将此路径分配给html img" src"属性图像不显示。运行我的代码时没有错误,我希望这条路可以是这样的:

~/******/img/image1.png

使用上述格式时会显示图像。

2 个答案:

答案 0 :(得分:1)

您可以用相对路径替换完整路径并将其插入src属性。

string s1 = @"D:\Projects\*************\****\img\logos\image1.png";            
string s2 = "~/****/" + s1.Substring(s1.IndexOf("img")).Replace("\\", "/");
// use s2 as src attribute for img

答案 1 :(得分:0)

Server.MapPath("〜")返回应用程序根目录的物理路径

您是否尝试过只使用fullPath = Server.MapPath(Path.Combine(" / img / logos /",filename))

Server.MapPath(" /")返回域名根目录的物理路径(不一定与应用程序的根目录相同)

我认为" /"这会将您的图像放在IIS可以访问的文件夹中,而不是D:文件夹