using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Upload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (!FileUpload1.HasFile) //Czy w FileUpload1 jest wybrany plik?
        {
            Label2.Text += "<FONT COLOR=red>Brak pliku do przesłania.</FONT><BR>"; //komunikat o błędzie            
            return; 
        }
        
        string data = Math.Abs(DateTime.Now.ToBinary()).ToString(); //ciag liczb na podstawie daty
        string adresURL = "Pliki/" + data + "_" + FileUpload1.FileName; //unikalna nazwa pliku
        string sciezkaNaSerwerze = Server.MapPath("~/" + adresURL); //lokalna ścieżka na serwerze
        FileUpload1.SaveAs(sciezkaNaSerwerze); //przesyłanie pliku            
        Image1.ToolTip = TextBox1.Text; //okno podpowiedzi pokaże opis
        Image1.ImageUrl = adresURL; //jaki obraz pokazać
        Image1.Visible = true; //ujawnienie komponentu pokazującego zdjęcie
        Label1.Visible = true; //etykieta nad obrazem rownież będzie widoczna
        Label1.Text = "Ostatnio przesłany plik (" + FileUpload1.FileName + "):";

        //ustalanie rozmiaru podglądu
        System.Drawing.Bitmap obraz = new System.Drawing.Bitmap(sciezkaNaSerwerze);
        float proporcje = obraz.Width/(float)obraz.Height;
        if (proporcje>1)
        {
            Image1.Width = 300;
            Image1.Height = (int)(300/proporcje);
        }
        else
        {                
            Image1.Height = 300;
            Image1.Width = (int)(300 * proporcje);
        }
            
        //dodawanie rekordu do bazy danych
        string wartosci="'"+adresURL+"','"+TextBox1.Text+"',"+DropDownList1.SelectedValue+","+obraz.Width+","+obraz.Height+",'" + DateTime.Now.ToShortDateString() + "','" + Request.UserHostAddress + "'";
        AccessDataSource1.InsertCommand = "INSERT INTO Pliki (Ścieżka,Opis,Kategoria,Szerokość,Wysokość,[Data Przesłania],[Adres IP]) VALUES (" + wartosci + ")"; //polecenie INSERT
        try
        {
            AccessDataSource1.Insert();

            Label2.Text += "<FONT COLOR=brown>Dodany plik: " + TextBox1.Text + " (" + FileUpload1.FileName + "), " + obraz.Width + "x" + obraz.Height + "</FONT><BR>";  //komunikat o powodzeniu
            TextBox1.Text = "";            
        }
        catch (Exception exc)
        {
            Label2.Text+="<FONT COLOR=red>Plik "+FileUpload1.FileName+" nie mógł być dodany do Galerii. Powód: "+exc.Message+"</FONT><BR>"; //komunikat o błędzie
            System.IO.File.Delete(sciezkaNaSerwerze); //usuniecie przeslanego pliku w razie niepowodzenia
        }
    }
}
