Asp.NET临时文件保存

时间:2015-01-24 15:51:47

标签: asp.net file-upload temporary-files

我从jquery代码URL.createObjectURL(event.target.files[0]);

获得了一条路径

返回如下内容:blob:http%3A/localhost%3A59105/f7dae0f7-088f-48cf-b446-eeda0bf23705

我尝试将此文件保存为

byte[] data;
    using (WebClient client = new WebClient())
    {
        data = client.DownloadData("blob:http%3A/localhost%3A59105/f7dae0f7-088f-48cf-b446-eeda0bf23705");
    }
    File.WriteAllBytes(@"~/a.jpg", data);

但它给出了上述代码的错误:

  The URI prefix is not recognized.

我究竟能如何复制这个文件?

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

1.创建简单的GET方法

[HttpGet]
public ActionResult GetFile(){
  return View();
}

2。使用@ Html.BeginForm帮助程序创建视图

@using (Html.BeginForm("GetFile","YourController", FormMethod.Post, { enctype = "multipart/form-data" }))
{
<input type="file" id="fileup" name="file"/>
<input type="submit" value="Send">
}

Rembember使用名称属性和重载版本的Html.BeginForm()

3.在后端获取数据

[HttpPost]
public ActionResult GetFile(HttpPostedFileBase file)
{
  if (file != null && file.ContentLength > 0)
  {
     var fileName = Path.GetFileName(file.FileName);
     var filePath = Path.Combine(Server.MapPath("~/Temp/"), fileName);
     file.SaveAs(path);
  }

  return RedirectToAction("Success");
}

html属性中的名称必须与HttpPostedFileBase具有相同的名称。