Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC3图像上传路径_C#_Asp.net Mvc 3_Image_Path - Fatal编程技术网

C# MVC3图像上传路径

C# MVC3图像上传路径,c#,asp.net-mvc-3,image,path,C#,Asp.net Mvc 3,Image,Path,我正试图上传一张图片和一个缩略图 我已将web.config中的上载路径设置为 当我上传图像时,它会得到应用程序所在的硬盘驱动器和文件夹的完整路径|: D:\Projects\Social\FooApp\FooApp.BackOffice\Images\image_n.jpg 但是我只想要/images/image\n.jpg 我使用的是路径。合并你认为原因是什么 我如何解决这个问题 这是代码|:\ foreach (var file in files) {

我正试图上传一张图片和一个缩略图

我已将web.config中的上载路径设置为

当我上传图像时,它会得到应用程序所在的硬盘驱动器和文件夹的完整路径|:

D:\Projects\Social\FooApp\FooApp.BackOffice\Images\image_n.jpg
但是我只想要
/images/image\n.jpg

我使用的是路径。合并你认为原因是什么

我如何解决这个问题

这是代码|:\

foreach (var file in files)
                {
                    if (file != null && file.ContentLength > 0)
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        if (fileName != null) originalFile = Server.MapPath(upload_path) + DateTime.Now.Ticks + "_ " + fileName;


                        file.SaveAs(originalFile); 

                        images.Add(originalFile);
                    }
                }

我假设这个代码在你的一个控制器中。 您是否尝试过:

Server.MapPath(yourPath);
你需要使用

返回与Web服务器上指定的虚拟路径相对应的物理文件路径

您的代码可以如下所示:

Path.Combine(HttpContext.Current.Server.MapPath("~/Images"), fileName);
*编辑-我将添加到您上面提供的代码中。它看起来像这样

foreach (var file in files)
{
    if (file != null && file.ContentLength > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        var uploadPath = "~/Images"; //This is where you would grab from the Web.Config. Make sure to add the ~

        if (fileName != null) {
            var originalFile = Path.Combine(HttpContext.Current.Server.MapPath(uploadPath), DateTime.Now.Ticks + "_ " + fileName);
            file.SaveAs(originalFile); 
            images.Add(originalFile);
        }
    }
}

您如何获取映像的完整路径的可能重复?path.Combine也在虚拟路径上工作?我总是将其用于物理文件路径。