|
-
April 11th, 2008, 02:12 AM
#1
Transfer any files on Web services by c#
Introduction
We can use Microsoft SOAP protocol to transfer any files between client and server.It's easy through firewall and also it cross flatform.
Background
I was going to develop an mobile software on pocket pc,but I found there were tiny resouces to use on mobile operating system.finally,I was finding Web services can solve the problem.
Using the code
There are two parts on the sample which included: Windows client and Webservice server code.
Blocks of code should be set as style "Formatted" like this:
Collapse//Clicnet:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace www.treaple.com
{
class TransferFile
{
public TransferFile() { }
public string WriteBinarFile(byte[] fs, string path, string fileName)
{
try
{
MemoryStream memoryStream = new MemoryStream(fs);
FileStream fileStream = new FileStream(path +
fileName, FileMode.Create);
memoryStream.WriteTo(fileStream);
memoryStream.Close();
fileStream.Close();
fileStream = null;
memoryStream = null;
return "File has already uploaded successfully。";
}
catch (Exception ex)
{
return ex.Message;
}
}
///
/// getBinaryFile:Return array of byte which you specified。
///
///
///
public byte[] ReadBinaryFile(string path,string fileName)
{
if (File.Exists(path + fileName))
{
try
{
///Open and read a file。
FileStream fileStream = File.OpenRead(path + fileName);
return ConvertStreamToByteBuffer(fileStream);
}
catch (Exception ex)
{
return new byte[0];
}
}
else
{
return new byte[0];
}
}
///
/// ConvertStreamToByteBuffer:Convert Stream To ByteBuffer。
///
///
///
public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
{
int b1;
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
while ((b1 = theStream.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));
}
return tempStream.ToArray();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace www.treaple.com
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//define and Initialize object
private GetImage.Service getImage = new GetImage.Service();
private TransferFile transferFile = new TransferFile();
private void BtnOpen_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = "C:/";
openFileDialog1.Filter = "All
Files|*.*"; //"All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg";
openFileDialog1.FilterIndex = 2;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
txtUpPath.Text = openFileDialog1.FileName;
}
}
private void BtnUploadFile_Click(object sender, EventArgs e)
{
MessageBox.Show(getImage.UploadFile(
transferFile.ReadBinaryFile(this.txtUpPath.Text,
this.txtUpName.Text), this.txtUpName.Text));
}
private void BtnDownloadFile_Click(object sender, EventArgs e)
{
MessageBox.Show(transferFile.WriteBinarFile(
getImage.DownloadFile(txtDownName.Text.Trim()),
this.txtLocalPath.Text, this.txtLocalName.Text));
}
private void linkLabel1_LinkClicked(
object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("http://www.treaple.com");
}
private void linkLabel2_LinkClicked(
object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.
Process.Start("http://www.treaple.com/Contact_Us.html");
}
}
}
//Server:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace www.treaple.com
class TransferFile
{
TransferFile() { }
private string WriteBinarFile(byte[] fs, string path,
string fileName)
{
try
{
MemoryStream memoryStream = new MemoryStream(fs);
FileStream fileStream = new FileStream(
path + fileName, FileMode.Create);
memoryStream.WriteTo(fileStream);
memoryStream.Close();
fileStream.Close();
fileStream = null;
memoryStream = null;
return ("File has already uploaded successfully");
}
catch (Exception ex)
{
return ex.Message;
}
}
///
/// getBinaryFile return array of byte which you specified
///
///
///
public byte[] ReadBinaryFile(string path,string fileName)
{
if (File.Exists(path + fileName))
{
try
{
///Open and read a file
FileStream fileStream = File.OpenRead(path + fileName);
return ConvertStreamToByteBuffer(fileStream);
}
catch (Exception ex)
{
return new byte[0];
}
}
else
{
return new byte[0];
}
}
///
/// ConvertStreamToByteBuffer convert Stream To ByteBuffer
///
///
///
public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)
{
int b1;
System.IO.MemoryStream tempStream = new System.IO.MemoryStream();
while ((b1 = theStream.ReadByte()) != -1)
{
tempStream.WriteByte(((byte)b1));/
}
return tempStream.ToArray();
}
}
}
If you have any question,you are welcome to contact me by email or visit my website.If you want to find more mobile software development information,visit my blog's article www.treaple.com articles.
Download the source code:
http://www.treaple.com/bbs/thread-29-1-1.html
Treaple offshore outsourcing software solutions providing mobile(Pocket pc,smartphone and wince.net) software,mobile GIS(Mobile map),Desktop GIS(Desktop map), GPS,GSM Locating Services,Voip,Multimedia(Audio,Video) and web design offshore outsourcing software development services.We have developed lots of projects on Microsoft Poccket pc 5.0/6.0,smartphone 5.0/6.0 and Microsoft windows and got strong background in Microsoft MapPoint, ESRI ArcGIS, Map info,Google map etc
Our website below: http://www.treaple.com
-
April 11th, 2008, 03:29 AM
#2
Re: Transfer any files on Web services by c#
please use code tags when posting code..
before you do, there's not much chance anyone will help you 
http://www.codeguru.com/forum/misc.php?do=bbcode#code
It's not a bug, it's a feature!
-
April 11th, 2008, 03:33 AM
#3
Re: Transfer any files on Web services by c#
 Originally Posted by foamy
before you do, there's not much chance anyone will help you
True the person should use code tags. But I don't think they are looking for any help. They are just giving a sample for people to look at and hopefully learn from (and a bit of advertising as well...).
-
April 11th, 2008, 03:43 AM
#4
Re: Transfer any files on Web services by c#
 Originally Posted by nelo
True the person should use code tags. But I don't think they are looking for any help. They are just giving a sample for people to look at and hopefully learn from (and a bit of advertising as well...). 
heh, my point exactly... I didn't even read his post.. just looked at all that text floating around and figured I'd tell him about the wonders of code tags
It's not a bug, it's a feature!
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|