通过WebService上传任何类型的文件
1.简介
本文描述了一种方法,通过Web服务从Windows窗体应用程序,可用于所有类型的文件上传。证明的方法不依赖于ASP.NET文件上传控件,并允许开发人员有机会上传文件的编程,而无需用户干预。这种做法可能是有用的,做这样的事情处理本地消息队列中的内容时,互联网服务是可用的(如果用户群是移动,只有间歇性的连接)。文章还讨论了为先导,以允许文件上传,通过服务使用的文件大小检查。
2.服务器端WebService编写
首先在VS中创建一个Webservice工程,并在WebService中编写如下方法:
- [WebMethod]
- public string UploadFile(byte[] f, string fileName)
- {
- try
- {
- MemoryStream ms = new MemoryStream(f);
- FileStream fs = new FileStream
- (System.Web.Hosting.HostingEnvironment.MapPath
- ("~/TransientStorage/") +
- fileName, FileMode.Create);
- ms.Writeto(fs);
- ms.Close();
- fs.Close();
- fs.dispose();
- return "OK";
- }
- catch (Exception ex)
- {
- return ex.Message.ToString();
- }
3.客户端窗体程序编写
private void UploadFile(string filename)
{
try
String strFile = System.IO.Path.GetFileName(filename);
TestUploader.Uploader.FileUploader srv = new
TestUploader.Uploader.FileUploader();
FileInfo fInfo = new FileInfo(filename);
long numBytes = fInfo.Length;
double dLen = Convert.Todouble(fInfo.Length / 1000000);
if (dLen < 4) // 文件上传有4M限制,超过4M的需要分割发送
{
FileStream fStream = new FileStream(filename,
FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
byte[] data = br.ReadBytes((int)numBytes);
br.Close();
service
string sTmp = srv.UploadFile(data, strFile);
fStream.Close();
fStream.dispose();
message
MessageBox.Show("File Upload Status: " + sTmp, "File
Upload");
}
else
MessageBox.Show("The file selected exceeds the size limit
for uploads.", "File Size");
}
MessageBox.Show(ex.Message.ToString(), "Upload Error");
}
4.客户端文件上传示例
新建一个窗体工程,并在窗体上拖放两个Button,一个TextBox控件,一个按钮是浏览文件,一个按钮上传文件,TextBox显示文件路径。
void btnbrowse_Click(object sender, EventArgs e)
openFileDialog1.Title = "打开文件";
openFileDialog1.Filter = "所有文件|*.*";
openFileDialog1.FileName = "";
openFileDialog1.InitialDirectory = "C:\\Temp";
catch{ }
openFileDialog1.ShowDialog();
if (openFileDialog1.FileName == "")
return;
txtFileName.Text = openFileDialog1.FileName;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。