using System.IO;
[OperationContract]
public List<string> UploadFiles(string strFileName,byte[] byFile, string strFileNo)
{
List<string> result = new List<string>();
try
{
//if file length is greater than 0
if (byFile.Length > 0)
{
//set the location in a string variable where to save the file
string strFilePath = "D:\\meet\\" + strFileName;
//create a filestream
System.IO.FileStream fs = new FileStream(strFilePath,FileMode.Create, FileAccess.Write);
//write the file at the specified location
fs.Write(byFile, 0, byFile.Length);
//close file stream
fs.Close();
result.Add(strFileNo);
//returm file number
return result;
}
else
{
result.Add("");
return result;
}
}
catch
{
result.Add("");
return result;
}
}
public class FilesClass
{
public FilesClass()
{
//do nothing
}
string strStatus = "";
string strNo = "";
FileInfo strFileName = null;
public string PropNumber
{
get { return strNo;}
set {strNo = value;}
}
public FileInfo PropFileName
{
get {return strFileName;}
set {strFileName = value;}
}
public string PropStatus
{
get {return strStatus;}
set {strStatus = value;}
}
}
<Grid
x:Name="LayoutRoot"
Background="White"
Width="400" Height="50">
<Button
Content="Choose"
Height="20" Width="150"
Click="Button_Click"
Margin="10,0,10,10"
VerticalAlignment="Bottom"
d:LayoutOverrides="Width,
Height" HorizontalAlignment="Left"
Background="#FF2770AF"></Button>
<Button
Content="Upload"
Height="20" Width="150"
Click="Button_Click_1"
Margin="20,0,10,10"
VerticalAlignment="Bottom"
d:LayoutOverrides="Width,
Height" HorizontalAlignment="Right"
Background="#FF2770AF"></Button>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
//create an object for file open dialog
OpenFileDialog op = new
OpenFileDialog();
//show the file browser dialog to select file
op.ShowDialog();
//if any file is selected
if (op.File != null && op.File.Name != "")
{
//check the file size. It shoud be less than 1MB
if (op.File.Length < 1048576)
{
//create a new fill class object to maintain the file content
FilesClass obj = new
FilesClass();
//assign file
obj.PropFileName = op.File;
//assing file number
obj.PropNumber = iFileCount.ToString();
//add the file object to files list collection
fl.Add(obj);
iFileCount++;
}
//IF size is greater then 1 MB show the message
else
{
MessageBox.Show("Max file size is 1 MB");
}
}
//display message to the user if no file is selected
else
{
MessageBox.Show("Select File");
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (fl.Count > 0)
{
//loop through the files and upload the files by passing it to web service.
for (int count =0; count < fl.Count; count++)
{
uploadService.uploadServiceClient x =
new uploadService.uploadServiceClient();
//read the file from file class
FilesClass obj = (FilesClass)fl[count];
System.IO.FileStream str =
obj.PropFileName.OpenRead();
byte[] by = new
byte[str.Length];
str.Read(by, 0, by.Length);
str.Close();
//call the upload file methods async event, which will upload the files asynchronously
x.UploadFilesAsync(obj.PropFileName.Name, by, obj.PropNumber);
//here is the event hadndler, whihc will be invoked for every file upload
x.UploadFilesCompleted += new EventHandler<FileUploadWCF.uploadService.UploadFilesCompletedEventArgs>(UploadFileComplted);
}
}
}
private void UploadFileComplted(object sender, uploadService.UploadFilesCompletedEventArgs e)
{
if (e.Result.ElementAt(0).ToString()!="")
{
MessageBox.Show("File Uploaded");
}
}
Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.
Comments (1)
Commented:
Voted yes above!