Uploading File using Ajax and receiving binary data in Asp.net (C#)

基础知识,可由此衍生。原文:http://uniapple.net/blog/?p=2050

In this post, I will show you how to upload a file using Ajax (Asynchronous JavaScript and XML) and receive the binary data in Asp.net C#. And it is ultra simple!

1. HTML

<input id="bannerImage" name="bannerImage" type="file"><input onclick="javascript:uploadfile()" type="button" value="upload">

2. JS

function uploadfile(){

    var bannerImage = $("#bannerImage").val();



    if (bannerImage) {

            var file = document.getElementById('bannerImage').files[0];

            var formData = new FormData();

            formData.append(file.name, file);



            var xhr = new XMLHttpRequest();

            var url = "/Category/UpdateBannerImage";

            xhr.open('POST', url, true);

            xhr.onload = function (e) {

                var response = $.parseJSON(e.target.response);

                console.log(response.fileName);

            };



           xhr.send(formData);  // multipart/form-data



    }

}

(Sending Binary Data)

3. C#, Receiving binary data

public JsonResult UpdateBannerImage()

{

    HttpPostedFileBase bannerImage = Request.Files[0] as HttpPostedFileBase;

    if (bannerImage != null && bannerImage.ContentLength > 0)

    {

	var fileName = Path.GetFileName(bannerImage.FileName);

	fileName = Regex.Replace(fileName, @"\s|\$|\#\%", "");

	var path = Path.Combine(Server.MapPath("~/images/category_banners"), fileName);

	bannerImage.SaveAs(path);



	return Json(new { success = false ,error = false, message = "Image has been updated successfully", fileName = fileName });

    }

    else

    {

	return Json(new { success = true, error = "File is empty" });

    }

}

你可能感兴趣的:(asp.net)