FileUpload в FormView - PullRequest
       17

FileUpload в FormView

0 голосов
/ 16 июля 2011

У меня проблема с добавлением URL-адреса изображения в базу данных. Я использую метод fileupload в formview в ASP.Net. И у меня есть таблица с именем duyurular который может быть записан URL изображения. Кстати, я использую базу данных SQL Server. Мой вопрос: я делаю процесс обновления, удаления и сделать объявление в FormView. Я могу загрузить эти изображения в папку с именем «img» с помощью FileUpload. Тем не менее, я хочу записать это в базе данных, а также. Когда добавить в базу данных другую информацию, там нет URL изображения. Наконец, я не могу добавить URL изображения в базу данных.

Вот мой код;

public partial class panel_yoneticipaneli : System.Web.UI.Page
{

FileUpload dosya, dosya1;
//TextBox t1, t2, t3;
//Button btn;
SqlConnection con;
static string str = "Data Source=SERT;Initial Catalog=Mmakina;Integrated Security=True";
string yol = "";
protected void Page_Load(object sender, EventArgs e)
{
    dosya = (FileUpload)FormView2.FindControl("FileUpload1");
    dosya1 = (FileUpload)FormView2.FindControl("FileUpload2");
   // btn = (Button)FormView2.FindControl("ResimKaydetButonu");
    //t1 = (TextBox)FormView2.FindControl("DuyuruBaslikTextBox");
    //t2 = (TextBox)FormView2.FindControl("DuyuruIcerikTextBox");
    //t3 = (TextBox)FormView2.FindControl("DuyuruTarihiTextBox");

    Label1.Visible = false;
    if (Session["KullaniciID"]!=null)
    {
        con = new SqlConnection(str);
        SqlCommand sorgu = new SqlCommand("SELECT * FROM Kullanici WHERE KullaniciAdi=@KullaniciAdi", con);
        sorgu.Parameters.Add("@KullaniciAdi", SqlDbType.VarChar).Value = Session["KullaniciAdi"];
          con.Open();
        SqlDataReader oku = sorgu.ExecuteReader(CommandBehavior.CloseConnection);
        Label1.Visible = true;
        while (oku.Read())
        {
           Label1.Text = oku["KullaniciAdi"].ToString();

        }

    }
    else {
        Response.Redirect("error.aspx");
    }


}
protected void Button1_Click(object sender, EventArgs e)
{
    FormsAuthentication.SignOut();
    Roles.DeleteCookie();
    Session.Clear();
    Response.Redirect("giris.aspx");

}

protected void btn_Click(object sender,EventArgs e) {
    try
    {
        if (dosya.HasFile)
        {
           dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
           System.Drawing.Image resim = System.Drawing.Image.FromFile(Server.MapPath("~/img/") + dosya.FileName);
           yol = "img/" + dosya.FileName;
           resim.Dispose();
           DbUpload();


        }
    }
    catch (Exception ex)
    {

    }
}



public void DbUpload() {
    try {
                    SqlConnection sc = new SqlConnection("Data Source=SERT;Initial Catalog=Mmakina;Integrated Security=True");
        SqlCommand scom = new SqlCommand("insert into Duyuru(DuyuruResmi) values(@DuyuruResmi)", sc);
        scom.Parameters.AddWithValue("@DuyuruResmi", dosya.FileName);

        scom.ExecuteNonQuery();
        sc.Close();
    }catch(Exception p){
        p.Message.ToString();
    }
}


 protected void UpdateButton_Click(object sender, EventArgs e)
{
try
    {

        if (dosya.HasFile)
        {
           dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
           yol = "img/" + dosya.FileName;
           Response.Write("Fileupload çalışıyor...");
         DbUpload();
        }
    }
    catch (Exception ex)
    {
    }
  }     

Заранее благодарим за все комментарии, которыми вы можете поделиться.

Ответы [ 2 ]

0 голосов
/ 17 июля 2011

Я предлагаю вам просто загрузить имя изображения без указания полного URL-адреса, и вы можете сохранить базовый путь к изображению в файле web.config, например '<add key="ImagesBasePath" value="/img" />', чтобы вы могли изменить путь, если у вас есть ваши изображения, и вы можете контролировать представление этого изображения путем объединения имени изображения в ConfigurationManager.AppSettings["ImagesBasePath"], так что это будет лучше.

0 голосов
/ 16 июля 2011

Вы должны использовать Formview ItemInserting Event, где вы можете передать встроенный URL.

protected void frmAsset_ItemInserting(object sender, FormViewInsertEventArgs e)
{
   if (dosya.HasFile)
    {
       dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
       e.NewValues["URL"] = "img/" + dosya.FileName;
    }
 }
...