using System.IO;
//method for upload the files. This will be called from Silverlight code behind.
[WebMethod]
public string UploadFiles(string strFileName, byte[] byFile, string strFileNo)
{
try
{
if (byFile.Length > 0)
{
string strFilePath = "D:\\meet\\" + strFileName;
System.IO.FileStream fs = new FileStream(strFilePath, FileMode.Create, FileAccess.Write);
fs.Write(byFile, 0, byFile.Length);
fs.Close();
return strFileNo;
}
else
{
return "";
}
}
catch
{
return "";
}
}
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 oblect 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 should 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;
//passing file number
obj.PropNumber = iFileCount.ToString();
//add the file object to files list collection
fl.Add(obj);
iFileCount++;
}
//IF size is greater than 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.uploadServiceSoapClient x = new uploadService.uploadServiceSoapClient();
//here is the event handler, which will be invoked for every file upload
x.UploadFilesCompleted += new EventHandler<uploadService.UploadFilesCompletedEventArgs>(UploadFileComplted);
//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);
}
}
}
private void UploadFileComplted(object sender, uploadService.UploadFilesCompletedEventArgs e)
{
if (e.Result != "")
{
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 (0)