将图像从浏览器内存保存到服务器

时间:2015-10-19 21:10:48

标签: jquery asp.net-mvc

我按照此问题Preview an image before it is uploaded的解决方案来预览用户想要提交到我网站的图片。

我有这个代码显示页面上的图像预览

<input type="file" accept="image/*" onchange="loadFile(event)">
<img id="output"/>
<script>
  var loadFile = function(event) {
    var output = document.getElementById('output');
    output.src = URL.createObjectURL(event.target.files[0]);
  };
</script>

并形成一些额外的数据。

我的问题是,当用户点击提交表单按钮时,如何将图像保存到我的webapp的/ uploads /文件夹中?我不需要在数据库中保存图像,但是在文件夹中的Web服务器上保存。

1 个答案:

答案 0 :(得分:0)

在控制器的POST操作中,您可以访问Request对象中的InputStream,然后将已发布文件的InputStream复制到文件流。这是一个示例代码。

foreach (string item in Request.Files)
{
    HttpPostedFileBase file = Request.Files[item];
    string imagePath = Path.Combine(Server.MapPath("~/Uploads"), file.FileName);
    using(FileStream fs = File.Create(imagePath)
    {
        file.InputStream.CopyTo(fs);
    }
}