I must upload image before Form is submitted. So I used ajax to do it.
Here is my HelpController:
[HttpPost]
public void AcceptUpload(HttpPostedFileBase TemporaryForLast, string ReferanceNo)
{
TemporaryForLast.SaveAs(Server.MapPath("~/Profiles/images/" + ReferanceNo + "/") + "HoldCopy" + ".jpg");
}
Here is my view:
<input id="HoldCopy" type="file" name="HoldCopy" accept="image/*">
Ans Script:
$("#acceptUpload").click(function () {
var formData= new FormData();
var imagefile=document.getElementById("HoldCopy").files[0];
formData.append("imageFile",imageFile);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/Help/AcceptUpload", true);
xhr.addEventListener("load", function (evt) { UploadComplete(evt); }, false);
xhr.addEventListener("error", function (evt) { UploadFailed(evt); }, false);
xhr.send(formData);
});
error
functions are also updated.
View
Instead of Jquery Ajax you could use
<script>
function SubmitButtonOnclick()
{
var formData= new FormData();
var imagefile=document.getElementById("imageFile").files[0];
formData.append("imageFile",imageFile);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/Help/AcceptUpload", true);
xhr.addEventListener("load", function (evt) { UploadComplete(evt); }, false);
xhr.addEventListener("error", function (evt) { UploadFailed(evt); }, false);
xhr.send(formData);
}
function UploadComplete(evt) {
if (evt.target.status == 200)
alert("Logo uploaded successfully.");
else
alert("Error Uploading File");
}
function UploadFailed(evt) {
alert("There was an error attempting to upload the file.");
}
</script>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With