无法从 'System.Web.HttpPostedFileBase' 转换为 'string'

cannot convert from 'System.Web.HttpPostedFileBase' to 'string'

var file = Request.Files[0];
                    //HttpPostedFileBase hpf = Request.Files[0];

                    if (file != null && file.ContentLength > 0)
                    {
                        //var fileName = Path.GetFileName(file.FileName);                        
                        var fileExtension = Path.GetExtension(file.FileName);
                        var allowedExtensions = new[] { ".bmp", ".png", ".jpg", "jpeg", ".gif" };
                        if (allowedExtensions.Contains(fileExtension))
                        {
                            //Delete files
                            var pathD = Server.MapPath("~/Avatar/1");
                            var images = Directory.GetFiles(pathD, CustomerID + ".*");
                            for (int i = 0; i < images.Length; i++)
                                System.IO.File.Delete(Server.MapPath(("~/Avatar/1/") + Path.GetFileName(images[i])));

                            //Up files
                            var fileName = CustomerID + fileExtension;
                            var path = Path.Combine(Server.MapPath("~/Avatar/1/"), fileName);

一切正常,但有一行出现问题

                            System.Drawing.Image imageToBeResized = System.Drawing.Image.FromFile(file);
                            int imageHeight = imageToBeResized.Height;
                            int imageWidth = imageToBeResized.Width;
                            int maxHeight = 400;
                            int maxWidth = 400;
                            imageHeight = (imageHeight * maxWidth) / imageWidth;
                            imageWidth = maxWidth;

                            if (imageHeight > maxHeight)
                            {
                                imageWidth = (imageWidth * maxHeight) / imageHeight;
                                imageHeight = maxHeight;
                            }

                            Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight);
                            System.IO.MemoryStream stream = new MemoryStream();
                            bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                            stream.Position = 0;
                            byte[] imasave = new byte[stream.Length + 1];
                            stream.Read(imasave, 0, imasave.Length);

                            var newImage = System.Drawing.Image.FromStream(stream);
                            newImage.Save(path);

当我传递文件时,下面的行给我错误 System.Drawing.Image imageToBeResized = System.Drawing.Image.FromFile(文件);

System.Drawing.Image.FromFile 采用字符串参数。而不是给它,他的文件变量给出你获得的文件路径,它会起作用。

 System.Drawing.Image.FromFile(Path.GetFileName(file.Filename));
                                  or
   System.Drawing.Image.FromFile(Server.MapPath(Path.GetFileName(file.Filename)));