【发布时间】:2015-01-12 16:42:40
【问题描述】:
问题出在标题上。我设法上传了一张图片,调整了它的大小并将重新生成的图片保存到一个特定的文件夹中,该文件夹的名称与上传的图片的名称不同。
我用这个代码...
WebImage img = new WebImage(this.File.InputStream);
img.Resize(width, height).Crop(1, 1);
img.Save(dir, extenstion, true);
而且它有效。但是当我尝试使用 HttpPostedFileBase::SaveAs(dir) 方法以新文件名保存文件时,它会保存一个 0 字节的空白图像。当我尝试将其保存为与上传的相同文件名时,它会正确保存。但是,正如人们所想的那样,用户可以使用相同的文件名保存图像,因此这种行为是不可取的。
那么,问题是,如何使用SaveAs() 保存上传的图像,但使用我生成的新文件名?
我试过这些链接
我广泛保存搜索,但找不到任何可以解决此问题的方法。
在保存调整大小的图片后,我还尝试使用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)));
【问题讨论】:
-
你能分享你的代码吗?