TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
kaushal nayak
NA
4
0
how can i upload all types of fule without using asp.net's fileupload control?
Sep 6 2009 5:10 PM
Hi,
i want to know about
how i can upload all types of file
without using the fileupload control
of asp.net
.
i had written code of both server and client but it only upload the text files only..
here i am describing that code..
hope u help me to make my minor project better.
here i had used Base64 encoding and decoding which i had done to upload all types of file but i can't do as per my requirement..
i want to upload all types of files like (
.
RAR,
.
EXE,
.
BIN..etc) on the server..
hope i will get valuable help from this website..
client code:
using System;
using System.Web;
using System.Web.Configuration;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Client : System.Web.UI.Page
{
Socket m_clientSocket, m_handler;
IAsyncResult m_result;
int cn=1;
byte[] a ;
byte[] a1,b1;
byte[] b;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
connect();
// disconnect();
}
public void disconnect()
{
try
{
if (m_clientSocket != null)
{
m_clientSocket.Close();
m_clientSocket = null;
//UpdateControls(false);
string n;
}
}
catch (SocketException se)
{
Response.Write("Connection failed" + se.Message.ToString());
}
}
public void connect()
{
try
{
if(cn==1)
{
m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//IPAddress A = IPAddress.Parse("10.1.7.88");
IPAddress[] aryLocalAddr = null;
string HostName = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostByName(HostName);
aryLocalAddr = ipEntry.AddressList;
int nPort =12533;
// IPEndPoint ipEnd = new IPEndPoint(A, nPort);
IPEndPoint ipEnd = new IPEndPoint(aryLocalAddr[0], nPort);
m_clientSocket.Connect(ipEnd);
cn = 0;
}
if (m_clientSocket.Connected)
{
// UpdateControls(true);
//Wait for data asynchronously
SendFilename();
WaitForData();
//WaitForData();
//Timer a = new Timer();
// SendData();
// WaitForData();
// WaitForData();
//WaitForData(d);
}
}
catch (SocketException se)
{
Response.Write(se.Message);
}
}
public void SendFilename()
{
if (fupload.HasFile)
{
try
{
string fname=fupload.FileName;
a1 = new byte[fname.Length];
a1=System.Text.ASCIIEncoding.ASCII.GetBytes(fname);
string returnValue= System.Convert.ToBase64String(a1);
a = System.Text.Encoding.ASCII.GetBytes(returnValue);
NetworkStream ns = new NetworkStream(m_clientSocket);
//ns.ReadTimeout = 1000000000;
ns.Flush();
ns.Write(a, 0, a.Length);
//ns.WriteTimeout = 1000000000;
ns.Dispose();
ns.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
public void SendData()
{
if (fupload.HasFile)
{
try
{
b1 = new byte[fupload.PostedFile.ContentLength];
// System.IO.StreamReader s=new System.IO.StreamReader(FileUpload1.FileName);
fupload.FileContent.Read(b1, 0, fupload.PostedFile.ContentLength);
string name = System.Text.Encoding.ASCII.GetString(b1);
a1 = System.Text.ASCIIEncoding.ASCII.GetBytes(name);
string returnValue = System.Convert.ToBase64String(a1);
a = System.Text.Encoding.ASCII.GetBytes(returnValue);
NetworkStream n = new NetworkStream(m_clientSocket);
// n.ReadTimeout = 1000000000;
n.Flush();
n.Write(a, 0,a.Length);
/* if (m_clientSocket != null)
{
NetworkStream n = new NetworkStream(m_clientSocket);
n.Write(a,0,FileUpload1.PostedFile.ContentLength);
}
string name=System.Text.Encoding.ASCII.GetString(a);
Response.Write(name);*/
//n.Dispose();
n.Dispose();
n.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message + "");
}
}
else
{
Response.Write("Not Specified file");
}
}
public void WaitForData()
{
SocketPacket theSocPkt = new SocketPacket();
theSocPkt.m_currentSocket = m_clientSocket;
m_result = m_clientSocket.BeginReceive(theSocPkt.dataBuffer, 0, theSocPkt.dataBuffer.Length, SocketFlags.None, new AsyncCallback(OnReceive), theSocPkt);
}
public void OnReceive(IAsyncResult asyn)
{
try
{
SocketPacket theSockId = (SocketPacket)asyn.AsyncState;
int iRx = theSockId.m_currentSocket.EndReceive(asyn);
string ans = System.Text.Encoding.ASCII.GetString(theSockId.dataBuffer, 0, iRx);
byte[] encodedDataAsBytes= System.Convert.FromBase64String(ans);
string returnValue =System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
if ((returnValue.CompareTo("Send Data"))==0)
{
SendData();
}
else if ((returnValue.CompareTo("Got Data")) == 0)
{
// Response.Write("Congratulation Your File Has been uploaded");
// disconnect();
Page.RegisterStartupScript("ScriptDescription", "<script type=\"text/javascript\"> alert('please fill up all the records');</script>");
//Page.RegisterStartupScript("ScriptDescription", "<script type=\"text/javascript\"> alert('please fill up all the records');</script>");
}
WaitForData();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
server's code:
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class FServer : System.Web.UI.Page
{
private Socket m_mainSocket;
private Socket[] m_workerSocket = new Socket[10];
private int m_clientCount = 0;
private int[] count = new int[10];
byte []a1;
byte[] a2;
string[] fname = new string[10];
protected void Page_Load(object sender, EventArgs e)
{
int i;
for(i=0;i<10;i++)
{
count[i] = 0;
}
}
protected void btnStart_Click(object sender, EventArgs e)
{
IPAddress[] aryLocalAddr = null;
string HostName = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostByName(HostName);
aryLocalAddr = ipEntry.AddressList;
int nPort = 12533; /*any port which is available*/ ;
// Create the listener socket
m_mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
m_mainSocket.Bind(new IPEndPoint(aryLocalAddr[0], nPort));
m_mainSocket.Listen(10);// Setup a callback routine for connection notification.
m_mainSocket.BeginAccept(new AsyncCallback(OnConnect), m_mainSocket);
UpdateControls(true);
}
private void UpdateControls(bool listening)
{
btnStart.Enabled = !listening;
btnStop.Enabled = listening;
}
public void OnConnect(IAsyncResult asyn)
{
try
{
Socket listener = (Socket)asyn.AsyncState;
m_workerSocket[m_clientCount] = listener.EndAccept(asyn);
// Let the worker Socket do the further processing for the
// just connected client
WaitForData(m_workerSocket[m_clientCount]);
// Now increment the client count
count[m_clientCount] = 1;
++m_clientCount;
// Session["clientCount"] = m_clientCount;
//Session.Add("clientCount", m_clientCount);
listener.BeginAccept(new AsyncCallback(OnConnect), listener);
}
catch (ObjectDisposedException)
{
System.Diagnostics.Debugger.Log(0, "1", "\n OnClientConnection: Socket has been closed\n");
}
catch (SocketException se)
{
Response.Write(se.Message);
//MessageBox.Show(se.Message);
}
}
public void WaitForData(Socket soc)
{
try
{
SocketPacket theSocPkt = new SocketPacket();
theSocPkt.m_currentSocket = soc;
// theSocPkt.dataBuffer = new byte[theSocPkt.m_currentSocket.Available];
// Start receiving any data written by the connected client
// asynchronously
soc.BeginReceive(theSocPkt.dataBuffer, 0,
theSocPkt.dataBuffer.Length,
SocketFlags.None,
new AsyncCallback(OnReceive),
theSocPkt);
}
catch (SocketException se)
{
Response.Write(se.Message);
}
}
public void OnReceive(IAsyncResult asyn)
{
try
{
SocketPacket thePacket = (SocketPacket)asyn.AsyncState;
int i = thePacket.m_currentSocket.EndReceive(asyn);
//thePacket.dataBuffer = new byte[i];
string name1 = System.Text.Encoding.ASCII.GetString(thePacket.dataBuffer, 0, i).ToString();
byte[] encodedDataAsBytes = System.Convert.FromBase64String(name1);
string name = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes);
//string name = System.Text.Encoding.ASCII.GetString(thePacket.dataBuffer,0,i).ToString();
//char[] chars = new char[i + 1];
//System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder();
//int charLen = d.GetChars(thePacket.dataBuffer, 0, i, chars, 0);
//System.String szData = new System.String(chars);
if (i > 0)
{
for(int j=0;j<m_clientCount;j++)
{
if (count[m_clientCount-1]==1)
{
FileStream fs = new FileStream("E:\\upload\\" + name, FileMode.CreateNew);
fname[m_clientCount] = name;
count[m_clientCount-1] = 2;
fs.Dispose();
fs.Close();
NetworkStream n = new NetworkStream(thePacket.m_currentSocket);
string send="Send Data";
byte[] toEncodeAsBytes= System.Text.ASCIIEncoding.ASCII.GetBytes(send);
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
byte[] a=new byte[returnValue.Length];
a=System.Text.Encoding.ASCII.GetBytes(returnValue);
n.Write(a, 0, a.Length);
n.Dispose();
n.Close();
// WaitForData(thePacket.m_currentSocket);
}
else if (count[m_clientCount-1] == 2)
{
FileStream fs = new FileStream("E:\\upload\\"+fname[m_clientCount],FileMode.Open,FileAccess.Write,FileShare.None);
a1 = new byte[i];
a1 = System.Text.ASCIIEncoding.ASCII.GetBytes(name);
//string abc= System.Text.Encoding.ASCII.GetString(a1, 0, i).ToString();
//a2 = new byte[abc.Length];
//a2 = System.Text.Encoding.ASCII.GetBytes(abc);
fs.Write(a1,0,a1.Length);
fs.Dispose();
fs.Close();
NetworkStream n = new NetworkStream(thePacket.m_currentSocket);
string send = "Got Data";
byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(send);
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
byte[] a = new byte[returnValue.Length];
a = System.Text.Encoding.ASCII.GetBytes(returnValue);
n.Write(a, 0, a.Length);
n.Dispose();
n.Close();
count[m_clientCount] = 0;
// WaitForData(thePacket.m_currentSocket);
}
}
}
WaitForData(thePacket.m_currentSocket);
}
catch (Exception se)
{
Response.Write(se.Message);
}
}
protected void btnStop_Click(object sender, EventArgs e)
{
CloseSockets();
UpdateControls(false);
}
void CloseSockets()
{
int count=Convert.ToInt32(Session["clientCount"]);
if (m_mainSocket != null)
{
m_mainSocket.Close();
}
for (int i = 0; i < count; i++)
{
if (m_workerSocket[i] != null)
{
m_workerSocket[i].Close();
m_workerSocket[i] = null;
}
}
}
}
Reply
Answers (
0
)
ASP.NET
login-logout in asp.net with c#