1

我正在一个不使用大量 .net 框架的项目中工作,而是使用Request.Form帖子。

用于保存图像的代码(这项工作,但质量下降)是这样的:

files[0].SaveAs(HttpContext.Current.Server.MapPath("../uploads/") + filename);

所以我试图改变这个,但现在它甚至不保存图像。(uploadStream.Read(buffer, 0, buffer.Length)带有 0 的值。

string imagePath = HttpContext.Current.Server.MapPath("../uploads/") + filename;
using (BinaryReader uploadStream = new BinaryReader(files[0].InputStream))
{
    using (FileStream fileStream = new FileStream(imagePath, FileMode.Create))
    {
        byte[] buffer = new byte[32768];
        int read;
        while ((read = uploadStream.Read(buffer, 0, buffer.Length)) > 0)
        {
            fileStream.Write(buffer, 0, read);
        }
    }
}

我根据图像上传的问题/答案构建了这段代码,而不会损失质量。我.net 4.0在应用程序上使用。


还有另一种方法,或者我正在做的是正确的方法,我只是错过了一些东西?PS:我没有收到任何错误,并且在数据库中,我保存了正确的信息,但我没有在文件夹中获取文件。上传到该文件夹​​有效,因为它适用于该SaveAs()方法。

PS:我可能是错的,关于 SaveAs 是图像质量下降的原因,但files[0]来自于HttpFileCollection和上传仅存在。

4

0 回答 0