В рамках моего веб-метода я пытаюсь сохранить изображение в папку.Имя папки находится в корне и называется «images».В веб-методе я нахожу загрузочный файл моего HTML-элемента управления и пытаюсь сохранить изображение, но оно продолжает выдавать следующую ошибку:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
fuClubLogo was null.
Я не понимаю, почему он возвращает ноль.
Здесьмой код
HTML
<asp:FileUpload ID="fuClubLogo" class="form-control" runat="server" />
<asp:Button ID="btnSaveClub" class="itg-btn news-btn" runat="server" Text="Save"/>
C #
[System.Web.Services.WebMethod]
public static string SaveUpdateClub(string ClubName, string Email, string Password, string ClubLogoName)
{
string result = string.Empty;
SqlConnection con = new SqlConnection(
WebConfigurationManager.ConnectionStrings["MyDbConn"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from [dbo].[tb_ClubDetails] where ClubID = @ClubID", con);
cmd.Parameters.AddWithValue("@ClubID", ClubName);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
result = "A club with this name already exists.";
con.Close();
dr.Close();
}
else
{
//Here I make an attempt to save the image to a folder
Page page = HttpContext.Current.Handler as Page;
FileUpload fuClubLogo = (FileUpload)page.FindControl("fuClubLogo");
string imgFile = Path.GetFileName(fuClubLogo.PostedFile.FileName);
fuClubLogo.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("/images/") + imgFile);
SqlConnection con2 = new SqlConnection(
WebConfigurationManager.ConnectionStrings["MyDbConn"].ConnectionString);
con2.Open();
SqlCommand cmd2 = new SqlCommand("sp_insertupdateClub", con2);
cmd2.CommandType = System.Data.CommandType.StoredProcedure;
cmd2.Parameters.AddWithValue("@ClubID", "");
cmd2.Parameters.AddWithValue("@ClubName", ClubName);
cmd2.Parameters.AddWithValue("@ClubEmail", Email);
cmd2.Parameters.AddWithValue("@ClubPassword", Password);
cmd2.Parameters.AddWithValue("@ClubLogoImage", ClubLogoName);
cmd2.Parameters.AddWithValue("@LogoImagePath", "/images/" + ClubLogoName);
cmd2.ExecuteNonQuery();
con2.Close();
result = "The club details are saved.";
}
return result;
}
AJAX
$(document).ready(function () {
$("#btnSaveClub").click(function () {
var ClubName = $("#txtClubName").val();
var Email = $("#txtEmail").val();
var Password = $("#txtPassword").val();
var ClubLogoName = $("#fuClubLogo").val().split('\\').pop();
$.ajax({
type: "POST",
url: "AddViewClub.aspx/SaveUpdateClub",
data: "{'ClubName': '" + ClubName +
"','Email': '" + Email +
"','Password': '" + Password +
"','ClubLogoName': '" + ClubLogoName + "'}",
contentType: "application/json; charset=utf-8",
cache: false,
dataType: "json",
success: function (response) {
//document.getElementById("Label10").innerHTML = response.d;
alert(response.d);
}
});
return false;
});
});
Я также попытался загрузить изображение в папкуиспользуя Ajax Jquery, но я не смог этого сделать, поэтому я пытаюсь сделать это с помощью веб-метода.
Пожалуйста, помогите и посоветуйте.Спасибо.