Snippet code of deleting attachment from SharePoint list item : private void DeleteAttachment(int NodeID, String strFileName)
{
SPContext.Current.Web.AllowUnsafeUpdates = true;
SPListItem delItem = lstAudit.GetItemById(NodeID);
SPAttachmentCollection atCol = delItem.Attachments;
foreach (string strDelfileName in atCol)
{
if (strDelfileName == strFileName)
{
atCol.Delete(strDelfileName);
delItem.Update();
lstAudit.Update();
return;
}}}
Snippet code for downloading attachment from SharePoint List Item :
private void DownloadAttachment(string FileName)
{
try
{
string AttachmentURL = string.Empty;
AttachmentURL = FileName;
string strName = AttachmentURL.Substring(AttachmentURL.LastIndexOf(“/”) + 1);
string sbURL = AttachmentURL.Trim();
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
Response.AppendHeader(“Content-disposition”, “attachment; filename=” + strName);
Response.AppendHeader(“Pragma”, “cache”);
Response.AppendHeader(“Cache-control”, “private”);
Response.WriteFile(sbURL);
Response.End();
}
catch (Exception eDwn)
{
Response.Write(eDwn.Message);
}
}
Snippet code of uploading document to SharePoint List Item :
protected void btnUpload_Click(object sender, EventArgs e)
{
try
{
string fileName = “”;
string strExtensionName = “”;
fileName = System.IO.Path.GetFileName(FileUpload.PostedFile.FileName);
if (fileName != “”)
{
strExtensionName = fileName.Substring(fileName.IndexOf(“.”) + 1);
if (strExtensionName.Equals(“webpart”)
strExtensionName.Equals(“dll”)
strExtensionName.Equals(“bat”)
strExtensionName.Equals(“exe”))
{
lblMessage.Visible = true;
lblMessage.Text = “Invalid fileName!!”;
}
else
{
string _fileTime = DateTime.Now.ToFileTime().ToString();
string _fileorgPath = System.IO.Path.GetFullPath(FileUpload.PostedFile.FileName);
if (txtFileName.Text.Trim().Length > 0)
{
fileName = fileName.Replace(fileName.Substring(fileName.LastIndexOf(“\\”) + 1), txtFileName.Text) + “.” + strExtensionName;
}
string _newfilePath = _fileTime + “~” + fileName;
string tempFolder = Environment.GetEnvironmentVariable(“TEMP”);
string _filepath = tempFolder + _newfilePath;
FileUpload.PostedFile.SaveAs(_filepath);
AddRow(fileName, _filepath, 0, true);
}
}
else
{
lblMessage.Visible = true;
lblMessage.Text = “Please Selct file Name”;
}
}
catch (Exception Ex)
{
Response.Write(Ex.Message);
}
}
protected void dgdUpload_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int recordToDelete = e.RowIndex;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
int cn = dt.Rows.Count;
if (Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]) != 0)
{
DeleteAttachment(Convert.ToInt32(dt.Rows[recordToDelete].ItemArray[0]), dt.Rows[recordToDelete].ItemArray[1].ToString());
}
dt.Rows.RemoveAt(recordToDelete);
dt.AcceptChanges();
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();
}
private void AddMoreColumns()
{
dt = new DataTable(“Files”);
dc = new DataColumn(“ID”, Type.GetType(“System.Int16″));
dt.Columns.Add(dc);
dc = new DataColumn(“FileName”, Type.GetType(“System.String”));
dt.Columns.Add(dc);
dc = new DataColumn(“FilePath”, Type.GetType(“System.String”));
dt.Columns.Add(dc);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
}
private void AddRow(string file, string path, int ID, Boolean bolCheckForfiles)
{
Boolean bolAddRow = true;
//dt = (DataTable)Page.Session["Files"];
dt = (DataTable)ViewState["Files"];
if (dt == null)
{
AddMoreColumns();
}
if (bolCheckForfiles)
{
if (dt.Rows.Count > 0)
{
foreach (DataRow drExistingrow in dt.Rows)
{
if (drExistingrow["FileName"].ToString() == file)
{
bolAddRow = false;
}
}
}
}
if (bolAddRow)
{
dr = dt.NewRow();
dr["ID"] = ID;
dr["FileName"] = file;
dr["FilePath"] = path;
dt.Rows.Add(dr);
//Page.Session["Files"] = dt;
ViewState["Files"] = dt;
dgdUpload.DataSource = dt;
dgdUpload.DataBind();//bind in grid
}
else
{
lblMessage.Visible = true;
lblMessage.Text = “Same File Name already exists!!!”;
}
}
protected void dgdUpload_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == “View”)
{
string file = e.CommandArgument.ToString();
DownloadAttachment(file);
}
}
if (dt != null)
{
int _dtcnt = dt.Rows.Count;
foreach (DataRow dr in dt.Rows)
{
Boolean bolAddAttachment = true;
fileName = dr["FileName"].ToString();
if (itmCorrectiveActionFinding.Attachments.Count > 0)
{
foreach (string strAttachedname in itmCorrectiveActionFinding.Attachments)
{
if (fileName == strAttachedname)
{
bolAddAttachment = false;
}
}
}
if (bolAddAttachment)
{
string strFilepath = dr["FilePath"].ToString();
StreamReader sr = new StreamReader(strFilepath);
Stream fStream = sr.BaseStream;
contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
itmCorrectiveActionFinding.Attachments.Add(fileName, contents);
itmCorrectiveActionFinding.Update();
lstCorrectiveActionFinding.Update();
SPContext.Current.Web.Update();
System.IO.File.Delete(strFilepath);
}
}
}
No comments:
Post a Comment