【问题标题】:FileUpload changing inputstream contentFileUpload 更改输入流内容
【发布时间】:2015-06-13 16:08:05
【问题描述】:

我有两个文件上传控件,允许用户同时上传 2 张图片。一旦用户选择了图片,我使用 2 方法来调整和裁剪发布的图像,然后将其保存到文件系统。当我想将该调整大小和裁剪的图像保存到文件系统时,就会出现问题。我使用了以下代码:

     protected void Upload(object sender, EventArgs e)
            {
                if (FileUpload1.PostedFile!=null && FileUpload1.PostedFile.ContentLength>0)
                {
                    string fileName = Path.GetFileName(DateTime.Now.Ticks + FileUpload1.PostedFile.FileName);
                    string fileName2 = Path.GetFileName(DateTime.Now.Ticks + FileUpload2.PostedFile.FileName);
                    CropImage(FileUpload1);
                    CropImage(FileUpload2);
                    FileUpload1.PostedFile.SaveAs(Server.MapPath("images/") + fileName);
                    FileUpload2.PostedFile.SaveAs(Server.MapPath("images/") + fileName2);
                    Response.Redirect(Request.Url.AbsoluteUri);
                }
            }

            private void CropImage(FileUpload fileup)
            {
                System.Drawing.Image image2 = System.Drawing.Image.FromStream(fileup.PostedFile.InputStream);
                int x = image2.Width;
                int y = image2.Height;
                System.Drawing.Image resizedImage = UIHelper.ResizeImage(image2, new System.Drawing.Size(1140,x/y*1140));
                System.Drawing.Image croppedImage = UIHelper.CropImage(resizedImage, new System.Drawing.Rectangle(0, 0, 1140, 650));

                MemoryStream ms = new MemoryStream();
                croppedImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
// getting bytes from the cropped image;
                byte[] slika = ms.ToArray();

 fileup.PostedFile.InputStream.Write(slika, 0, slika.Length);
 // changing the original input stream with the cropped one               
            }

现在我想用裁剪后的字节替换原始文件上传输入流的字节。有人可以告诉我是我做错了还是我没有看到这里有什么问题??

我得到的错误是:

"不支持指定的方法", 在这行代码中:

 fileup.PostedFile.InputStream.Write(slika, 0, slika.Length); 

有什么解决办法吗?谢谢!!

【问题讨论】:

  • 你有什么问题?
  • 它说“不支持指定的方法”,在这行代码中:fileup.PostedFile.InputStream.Write(slika, 0, slika.Length);

标签: asp.net image file-upload save filesystems


【解决方案1】:

如果要将调整大小的图像保存到磁盘,则必须使用另一种方法:

File.WriteAllBytes("yourPath..slika.jpg", slika);

并使用

“使用”

安全处置

        using (var ms = new MemoryStream())
        {

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 2015-05-18
    • 2020-02-10
    • 2015-06-22
    • 2017-03-27
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多