Reputation:
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
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