上传的图像搞砸了

时间:2014-07-18 12:20:21

标签: c# asp.net-mvc-4 file-upload

我有一个网站是一个图库所以基本上管理员可以上传一个图像,其中包含有关该图像的一些信息,它将在图库中显示,问题是当我上传一个大小为〜的图像时40 KB,它工作正常,但当我上传另一个大小为~230 KB的图像时,它看起来只需要处理此事,尽管铬底状态栏显示上传文件的百分比高达100%但之后它一直在等待我的服务器,它永远不会结束......上传的图像就像http://www.atrin-gallery.ir/Images/Upload/dalangV.jpg

我处理文件上传的代码如下:

if (Request != null)
        {
            try
            {
                HttpPostedFileBase file = Request.Files["image"];

                if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
                {
                    string subPath = "~/Images/Upload"; // your code goes here

                    bool isExists = System.IO.Directory.Exists(Server.MapPath(subPath));

                    if (!isExists)
                    {
                        System.IO.Directory.CreateDirectory(Server.MapPath(subPath));
                    }

                    string fileName = Path.GetFileName(file.FileName);
                    fileName = fileName.Replace(" ", "");
                    var path = Path.Combine(Server.MapPath(subPath), fileName);
                    string fileContentType = file.ContentType;
                    byte[] fileBytes = new byte[file.ContentLength];
                    file.InputStream.Read(fileBytes, 0, file.ContentLength);
                    file.SaveAs(path);
                }
            }
            catch (Exception e)
            {

            }
        }
P.S:我在很多其他网站上一直使用相同的功能,他们只是处理更大的文件或图像,任何想法?

1 个答案:

答案 0 :(得分:0)

从代码中删除以下行,并仅使用file.SaveAs(path);保存文件。

string fileContentType = file.ContentType;
byte[] fileBytes = new byte[file.ContentLength];
file.InputStream.Read(fileBytes, 0, file.ContentLength);

您不需要阅读Stream,如果您尝试使用Read方法进行阅读,它将通过读取的字节数推进流中的位置。 (Stream.Read Method)。

谢谢!