This is a migrated thread and some comments may be shown as answers.

Issue with RadUpload in Grid

1 Answer 68 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Dorababu
Top achievements
Rank 1
Dorababu asked on 15 May 2012, 04:33 PM
I have written a code to add some files to database using grid. But I am unable to get the files in my code. This is my code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using Telerik.Web.UI;
using System.IO;
 
public partial class _Default : System.Web.UI.Page
{
    public DataTable table;
    public SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DoraConnectionString"].ConnectionString);
    SqlCommand command = new SqlCommand();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
 
        }
    }
    protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        command.Connection = conn;
        string selectQuery = "Select * from Files";
        table = new DataTable();
 
        conn.Open();
        try
        {
            //Select Query to populate the RadGrid with data from table Employees.    
            sqlDataAdapter.SelectCommand = new SqlCommand(selectQuery, conn);
            sqlDataAdapter.Fill(table);
            RadGrid1.DataSource = table;
        }
        finally
        {
            //Close the SqlConnection    
            conn.Close();
        }
 
    }
    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
    {
         
        if (e.CommandName == RadGrid.PerformInsertCommandName)
        {
 
            RadUpload upload = (RadUpload)e.Item.FindControl("RadUpload1");
            foreach (UploadedFile f in upload.UploadedFiles)
            {
                f.SaveAs(Server.MapPath("./" + f.GetName()));
            }
            GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item;
 
            //string EmployeeID = (insertedItem["EmployeeID"].Controls[0] as TextBox).Text;  
 
            string FileName = (item["FileName"].FindControl("RadUpload1") as RadUpload).UploadedFiles[0].GetName();
            UploadedFile file = (item["FileName"].FindControl("RadUpload1") as RadUpload).UploadedFiles[0];
            int Size = (int)file.InputStream.Length;
            string ContentType = GetFileContentType(FileName);
            byte[] bytes = new byte[Size];
            file.InputStream.Read(bytes, 0, (int)file.InputStream.Length);
            DateTime Date = DateTime.Now;
 
            try
            {
                //Open the SqlConnection    
                conn.Open();
                //Update Query to insert into  the database     
                string insertQuery = "INSERT into  Files(FileName,FileData,Size,ContentType,Date) values(@FileName, @FileData,@Size, @ContentType, @Date)";
                command.CommandText = insertQuery;
                command.Connection = conn;
                command.Parameters.AddWithValue("@FileName", FileName);
                command.Parameters.AddWithValue("@FileData", bytes);
                command.Parameters.AddWithValue("@Size", Size);
                command.Parameters.AddWithValue("@ContentType", ContentType);
                command.Parameters.AddWithValue("@Date", Date);
                command.ExecuteNonQuery();
                //Close the SqlConnection    
                conn.Close();
 
 
            }
            catch (Exception ex)
            {
                RadGrid1.Controls.Add(new LiteralControl("Unable to insert Files. Reason: " + ex.Message));
                e.Canceled = true;
            }
        }
        if (e.CommandName == RadGrid.UpdateCommandName)
        {
            GridEditFormItem item = (GridEditFormItem)e.Item;
 
            //string EmployeeID = (insertedItem["EmployeeID"].Controls[0] as TextBox).Text;  
 
            string FileName = (item["FileName"].FindControl("RadUpload1") as RadUpload).UploadedFiles[0].GetName();
            UploadedFile file = (item["FileName"].FindControl("RadUpload1") as RadUpload).UploadedFiles[0];
            int Size = (int)file.InputStream.Length;
            string ContentType = GetFileContentType(FileName);
            byte[] bytes = new byte[Size];
            file.InputStream.Read(bytes, 0, (int)file.InputStream.Length);
            DateTime Date = DateTime.Now;
 
            try
            {
                //Open the SqlConnection    
                conn.Open();
                //Update Query to insert into  the database     
                string insertQuery = "update Files set FileName=@FileName, FileData=@FileData, Size=@Size, ContentType=@ContentType, Date=@Date where ID=@ID";
                command.CommandText = insertQuery;
                command.Connection = conn;
                command.Parameters.AddWithValue("@FileName", FileName);
                command.Parameters.AddWithValue("@FileData", bytes);
                command.Parameters.AddWithValue("@Size", Size);
                command.Parameters.AddWithValue("@ContentType", ContentType);
                command.Parameters.AddWithValue("@Date", Date);
                command.Parameters.AddWithValue("@ID", item.GetDataKeyValue("ID"));
                command.ExecuteNonQuery();
                //Close the SqlConnection    
                conn.Close();
 
 
            }
            catch (Exception ex)
            {
                RadGrid1.Controls.Add(new LiteralControl("Unable to update Files. Reason: " + ex.Message));
                e.Canceled = true;
            }
        }
    }
    protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            LinkButton lnk = (e.Item as GridDataItem)["Preview"].Controls[0] as LinkButton;
            lnk.OnClientClick = "Preview(" + (e.Item as GridDataItem).GetDataKeyValue("ID") + "); return false;";
        }
    }
    private string GetFileContentType(string filename)
    {
        string contentType = string.Empty;
 
        int indexOfDot = filename.LastIndexOf(".");
 
        if (indexOfDot > 0)
        {
            ++indexOfDot;
 
            string ext = filename.Substring(indexOfDot, (filename.Length - indexOfDot));
 
            if (!string.IsNullOrEmpty(ext))
            {
                switch (ext.ToLower().Trim())
                {
                    case "doc":
                    case "docx":
                        contentType = "application/msword";
                        break;
 
                    case "pdf":
                        contentType = "application/pdf";
                        break;
 
                    case "xls":
                    case "xlsx":
                        contentType = "application/ms-excel";
                        break;
 
                    case "rar":
                        contentType = "application/winrar";
                        break;
                    case "txt":
                        contentType = "text/plain";
                        break;
                    case "gif":
                        contentType = "image/gif";
                        break;
                    case "jpeg":
                    case "jpg":
                        contentType = "image/jpeg";
                        break;
                    case "png":
                        contentType = "image/x-png";
                        break;
                    case "tif":
                        contentType = "image/tiff";
                        break;
                    case "bmp":
                        contentType = "image/x-ms-bmp";
                        break;
                    default:
                        contentType = "application/octet-stream";
                        break;
                }
            }
        }
        return contentType;
    }
}

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 16 May 2012, 10:05 AM
Hello,

You are not able to get files because may be your grid ajaxified.

So, must have to disable ajax when any file selected in Radupload for that please check below link/Dmo.
Upload / Using RadUpload in an Ajaxified Grid

Thanks,
Jayesh Goyani
Tags
Grid
Asked by
Dorababu
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or