user877559
user877559

Reputation:

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.

Upvotes: 0

Views: 4312

Answers (1)

Jacek Pudysz
Jacek Pudysz

Reputation: 306

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.

Upvotes: 1

Related Questions