ASP.NET Mvc 4使用Diffrenet名称保存上载的文件

时间:2014-11-15 09:26:27

标签: asp.net-mvc file-upload

问题是标题所说的。我设法上传图像,调整图像大小并将重新保存的图像保存到具有与上载图像名称不同的名称的特定文件夹。

我使用此代码......

WebImage img = new WebImage(this.File.InputStream);
img.Resize(width, height).Crop(1, 1);
img.Save(dir, extenstion, true);

它有效。但是当我尝试使用HttpPostedFileBase::SaveAs(dir)方法用新文件名保存文件时,它会保存一个0字节的空白图像。当我尝试将其保存为上传的相同文件名时,它会正确保存。但是,正如人们所想的那样,用户可以使用相同的文件名保存图像,因此这种行为是不可取的。

所以,问题是,如何使用SaveAs()保存上传的图像但是使用我生成的新文件名?

我试过这些链接

Upload tut 1

Upload tut 2

我直接搜索了搜索但我无法找到任何可以解决此问题的内容。

我还尝试在保存已调整大小的图片后使用WebImage类保存原始上传的图像,但它也将其保存为空白。

修改

保存原始上传图片的代码......

string dir = "~/Content/images/large/";
string newFilename = "2154689.jpg" // filename is generated and then added the correct extension
UploadedFile.SaveAs(Path.Combine(dir, newFilename));

这样可以,但它会使用用户上传的文件名保存图像

UploadedFile.SaveAs(Path.Combine(dir, Path.GetFileName(this.File.FileName)));

1 个答案:

答案 0 :(得分:0)

我是Asp.net和C#的新手大约15天,这对我来说是个错误。您必须将文件名作为上传文件的sam扩展名。所以这有用......

File.SaveAs(Path.Combine(dir, Path.GetFileName(newFilename + "." + ext)));

我这是一个非常愚蠢的错误。