Asp.NET temporary file saving

I got a path from the jquery code URL.createObjectURL(event.target.files[0]); 

It returns something like this : blob:http%3A/localhost%3A59105/f7dae0f7-088f-48cf-b446-eeda0bf23705 

I tried to save this file like 

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);

But it gives an error about the code above: 

  The URI prefix is not recognized.

How exactly I can copy this file? 

Thanks for your suggestions.

Last updated:3/28/2015 7:45:36 AM

1 Answers

Jayden Bell
Jayden Bell

1.Create simple GET method 

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

2. Create View with @Html.BeginForm helper 

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

Rembember to use name attribute and overloaded version of Html.BeginForm() 

3.Get data in Backend 

[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");
}

Name in html attribute must have same name as HttpPostedFileBase.

Answer