2010-10-12 5 views
0

J'ai écrit le code suivant pour placer le chemin de l'image dans sql server 2005 mais son ne fonctionne pas est leur toute autre façon de placer des images dans le serveur sql de l'application clientide.comment placer des images dans le serveur sql 2005

example.html

<form id="addresslistingform"> 
        <fieldset id="fieldset1"><legend>Address for listing</legend> 
       Zipcode:<br/> 
        <input size="30" type="text" id="zipcode"/><br/> 
       Street No:<br/> 
        <input size="30" type="text" id="addstreetno" class="number" name="streetno"/><br/> 
       Street Name:<br/> 
        <input size="30" type="text" id="addstreetname" class="required" name="streetname"/><br/>        
       Upload a couple of pictures:<br> 
       <input size="30" type="file" id="addpicture"/> <br>     
       </fieldset> 

      <input id="Addresslisting" type="image" src="images/Submit.png" align="left" />     
</form> 

example.js

$("#Addresslisting").click(function() { 
     var zipcode = ($("#addzipcode").val()); 
     var streetno = ($("#addstreetno").val()); 
     var streetname = ($("#addstreetname").val()); 
     var image = ($("#addpicture").val()); 
     var submitaddress = "{\"zipcode\":\"" + zipcode + "\",\"streetnumber\":\"" + streetno + "\",\"streetname\":\"" + streetname + "\",\"streetname\":\"" + streetname + "\",\"Imagelocation\":\"" + image + "\"}"; 
      $.ajax({ 
       type: "POST", 
       url: "/exampleproject/Afterlogin.asmx/addresslisting", 
       data: submitaddress, 
       contentType: "application/json; charset=utf-8", 
       success: ajaxSucceed, 
       dataType: "json", 
       failure: ajaxFailed 
      }); 

}); 

webservices asmx fichier

[WebMethod(EnableSession = true)] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public bool addresslisting(string zipcode, string streetnumber, string streetname, string Imagelocation) 
    { 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = ""; 
     con.Open(); 

     SqlCommand sqlcom = new SqlCommand();//declaring a new command 
     sqlcom.CommandText = "insert into Address_Listing(Zip_Code,Street_Number,Street_Name,Image_Location) values ('" + zipcode + "','" + streetnumber + "','" + streetname + "', '" + Imagelocation + "')"; //query for inserting data into contact table 
     sqlcom.Connection = con;//connecting to database 

     try 
     { 
      int success = sqlcom.ExecuteNonQuery(); 
      con.Close(); 

      if (success > 0) 
      { 
       return true; 
      } 
      else 
      { 
       return false; 
      } 
     } 
     catch (Exception e) 
     { 
      con.Close(); 
      return false; 
     } 


    } 

Répondre

1

Pour votre information, il y a un certain nombre de problèmes avec votre code. Il devrait être plus comme ceci:

public bool addresslisting(string zipcode, string streetnumber, string streetname, string Imagelocation) 
{ 
    using (SqlConnection con = new SqlConnection()) 
    { 
     con.ConnectionString = ""; 
     con.Open(); 

     using (SqlCommand sqlcom = new SqlCommand()) 
     { 
      sqlcom.CommandText = 
       string.Format(
        "insert into Address_Listing(Zip_Code,Street_Number,Street_Name,Image_Location) " + 
        "values ('{0}','{1}','{2}', '{3}')", 
        zipcode, streetnumber, streetname, Imagelocation); 
      sqlcom.Connection = con; 

      int success = sqlcom.ExecuteNonQuery(); 

      return success > 0; 
     } 
    } 
} 
  1. using blocs veilleront à ce que les ressources sont libérées, même si une exception est levée
  2. Ne cachez jamais des exceptions. En retournant "false", vous cachez tout problème qui a provoqué la levée de l'exception.
  3. J'espère certainement que vous avez nettoyé le code postal, le numéro de rue, etc., sinon votre code est potentiellement vulnérable à une attaque par injection SQL.