How to upload file on ftp
how to unzip file and upload on ftp
Solution
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;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
public partial class AddFromFtp : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = "admin - " + Resources.Resource.webtitle;if (!IsPostBack)
{
if (Session["userid"] == null)
{
// Response.Redirect("~/login.aspx");
}LoadDDL();
}
}protected void Page_PreInit(object sender, EventArgs e)
{
// This is necessary because Safari and Chrome browsers don't display the Menu control correctly.
// All webpages displaying an ASP.NET menu control must inherit this class.
if (Request.ServerVariables["http_user_agent"].IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1)
Page.ClientTarget = "uplevel";
}private void LoadDDL()
{
ddlmaincate.DataSource = ChannelCategoryBLL.GetChannelCategoryList();
ddlmaincate.DataTextField = "ChannelCategoryTitle";
ddlmaincate.DataValueField = "ChannelCategoryID";
ddlmaincate.DataBind();ddlmaincate.Items.Insert(0, new ListItem("-- select -", "0"));
// LoadChannelByCatId();
}
private void LoadChannelByCatId()
{
ddlsubcate.DataSource = ChannelBLL.GetChannelListByChannelCategoryID(Convert.ToInt32(ddlmaincate.SelectedValue));
ddlsubcate.DataTextField = "Channel";
ddlsubcate.DataValueField = "ChannelID";
ddlsubcate.DataBind();
}
protected void ddlmaincate_SelectedIndexChanged(object sender, EventArgs e)
{
LoadChannelByCatId();
}
protected void btnPushIntoDB_Click(object sender, EventArgs e)
{
try
{
UnzipFiles();
PushToDB();
lblresult.Text = "Files are pushed.";
}
catch (Exception ex)
{lblresult.Text = ex.ToString();
}
}
private void PushToDB()
{
// string[] filePaths = Directory.GetFiles((Server.MapPath("islamicdata", "*.xml", SearchOption.AllDirectories);
// string[] filePaths = Directory.GetFiles(Server.MapPath("islamicdata/beyaan"));
string[] filePaths = Directory.GetFiles(Server.MapPath("islamicdata/" + ddldept4sub.SelectedItem.Text + "_" + ddlmaincate.SelectedItem.Text + "_" + ddlsubcate.SelectedItem.Text.Trim() + "/"));
foreach (string var in filePaths)
{
string ss = var;// int pathindex = var.LastIndexOf("/");
int pathindex = var.LastIndexOf("\\");
string filename = var.Substring(pathindex + 1);
// checking read files, filename start with "__", it mean file is already read.
if (filename.StartsWith("KQI_") == false)
{
//// after reading Rename file
FileInfo TheFile = new FileInfo(var);
if (TheFile.Exists)
{
int nfileind = var.LastIndexOf("\\");
string nfile = var.Insert(nfileind + 1, "KQI_");
try
{
SubChannel.SUBCHANNELSDataTable subchanneltbl = new SubChannel.SUBCHANNELSDataTable();
SubChannel.SUBCHANNELSRow row = (SubChannel.SUBCHANNELSRow)subchanneltbl.NewSUBCHANNELSRow();
row.ChannelID = Convert.ToDecimal(ddlsubcate.SelectedValue);
int lastindexoffile = filename.LastIndexOf(".");
row.SubChannelTitle = filename.Substring(0, lastindexoffile);
row.SubChannelDescription = row.SubChannelTitle;
row.ThumbnailFileName = filename;
row.MediaFileName = "KQI_" + filename;
if (filename.ToLower().Contains(".mp3") == true)
{
row.MediaFileType = true;
}
else
{
row.MediaFileType = false;
}
row.IsPodcastEnabled = true;
row.IsRSSEnabled = true;
row.AddedDate = DateTime.Now;
// row.AudioImageFileName = filename;
row.InterviewDate = DateTime.Now;
row.MediaDuration = "30:00";
row.ChannelKey = "channelkey";
row.NoOfDownloaded = 0;
row.NoOfViews = 0;
decimal tval1 = (TheFile.Length / 1024);
decimal tval = tval1 / 1024;
row.FileSize = Convert.ToString(System.Math.Round(tval, 2));row.ChannelCategoryID = Convert.ToInt32(ddlmaincate.SelectedValue);
decimal varsubchannelid = SubChannelBLL.AddSubChannel(ref row);
BusinessManager.SendClipToSubscribers(varsubchannelid.ToString(), row.SubChannelTitle);
File.Move(var, nfile);
}
catch (Exception ex)
{
lblresult.Text = ex.ToString();
File.Delete(nfile);
Console.WriteLine(ex.ToString());
}
}
}
}
}
private void UnzipFiles()
{
//string newfilepath = Server.MapPath("islamicdata/" + ddldept4sub.SelectedItem.Text + "_" + ddlmaincate.SelectedItem.Text + "_" + ddlsubcate.SelectedItem.Text.Trim() + "/")";
string filepathdetination =Server.MapPath("islamicdata/" + ddldept4sub.SelectedItem.Text + "_" + ddlmaincate.SelectedItem.Text + "_" + ddlsubcate.SelectedItem.Text.Trim() + "/");
string[] filePaths = Directory.GetFiles(Server.MapPath("islamicdata/" + ddldept4sub.SelectedItem.Text + "_" + ddlmaincate.SelectedItem.Text + "_" + ddlsubcate.SelectedItem.Text.Trim() + "/"));
foreach (string var in filePaths)
{
if (var.ToLower().Contains(".zip"))
{
string aa = var;
{
int fi = var.LastIndexOf("\\");
string ffn = var.Substring(fi+1);
string ZipFileName = var.Substring(fi + 1);
string fpath =var;try
{if (!File.Exists(Server.MapPath(ZipFileName)))
{
// lstProcess.Items.Add("File Does Not Exists.");
return;
}using (ZipInputStream s = new ZipInputStream(File.OpenRead(Server.MapPath(ZipFileName))))
{ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);// create directory
if (directoryName.Length > 0)
{
// Directory.CreateDirectory(Server.MapPath(directoryName));
}if (fileName != String.Empty)
{using (FileStream streamWriter = File.Create(filepathdetination + fileName))
{int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
}
}
}
}
catch (Exception ex)
{
//Display Error
}
finally
{
//Update Status
}
}
}
}
}
protected void ddldept4sub_SelectedIndexChanged(object sender, EventArgs e)
{
ChannelCategoryDS.ChannelCategoryDataTable tblCat = ChannelCategoryBLL.GetCategoryByDepartamentID(Convert.ToInt32(ddldept4sub.SelectedValue));
if (tblCat.Count >= 1)
{
ddlmaincate.DataSource = tblCat;
ddlmaincate.DataTextField = "ChannelCategoryTitle";
ddlmaincate.DataValueField = "ChannelCategoryID";
ddlmaincate.DataBind();
ddlmaincate.Items.Insert(0, new ListItem("-- select --", "0"));
}
}
protected void btnunzp_Click(object sender, EventArgs e)
{
UnzipFiles();}
}