WPF 客户端上传文件到 ASP.NET MVC 网站
发布日期:2022-03-11 15:03:34 浏览次数:11 分类:技术文章

本文共 1679 字,大约阅读时间需要 5 分钟。

本文介绍客户端向ASP.NET MVC网站上传文件的一种方法。上传的文件比较小时可以用到。如果文件比较大,通过FTP协议上传也许更适合一些。

服务端

既然客户端要向服务端传文件,服务端得能收文件才行。在ASP.NET MVC网站中,要接收客户端的文件上传很简单。因为不用给客户端返回视图,只要和客户端通信即可,所以不用新建View。新建一个controller增加一个action,或者在现有controller中增加一个action用来处理文件上传。

 

 1 
///
 
<summary>
 2 
///
 上传
 3 
///
 
</summary>
 4 
///
 
<param name="file">
上传的文件信息
</param>
 5 
///
 
<returns></returns>
 6 
[HttpPost]  
//
 允许以POST方式提交数据
 7 
public
 
int
 Upload(HttpPostedFileBase file)
 8 
{
 9 
    file.SaveAs(Server.MapPath(String.Format(
"
/UploadFiles/{0}
"
, file.FileName)));  
//
 保存文件
10 
    
return
 
0
;  
//
 返回数据给客户端
11 
}

 

参数名file也是POST数据时的key名,客户端在上传数据时也要带这个名字。

客户端

客户端使用WPF或是WinForm区别不大,主要是获取要上传文件的路径,然后将该文件上传到服务器。

 

 1 
///
 
<summary>
 2 
///
 选择文件按钮
 3 
///
 
</summary>
 4 
///
 
<param name="sender"></param>
 5 
///
 
<param name="e"></param>
 6 
private
 
void
 select_Click(
object
 sender, RoutedEventArgs e)
 7 
{
 8 
    OpenFileDialog dialog 
=
 
new
 OpenFileDialog();  
//
 初始化对话框
 9 
    dialog.Multiselect 
=
 
false
;  
//
 不允许选中多个文件
10 
    dialog.ShowDialog();  
//
 显示对话框
11 
    filePath.Content 
=
 dialog.FileName;  
//
 把文件路径显示在界面上
12 
    upload.IsEnabled 
=
 
true
;  
//
 允许按上传按钮
13 
}
14 
15 
///
 
<summary>
16 
///
 上传文件按钮
17 
///
 
</summary>
18 
///
 
<param name="sender"></param>
19 
///
 
<param name="e"></param>
20 
private
 
void
 upload_Click(
object
 sender, RoutedEventArgs e)
21 
{
22 
    
string
 url
=
"
http://localhost:9741/Sample/Upload
"
;  
//
 上传文件的服务端URL
23 
    WebClient webClient 
=
 
new
 WebClient();  
//
 初始化WebClient
24 
    webClient.UploadFile(url, filePath.Content.ToString());  
//
 上传文件
25 
}

 

WebClient上传文件时默认的key就是file,因此这里没有显式的设置。如果使用方式上传数据,可能需要提供这个名字,以使服务器能够接收到文件。

在这个例子中,服务端没有对客户端或上传的文件进行验证。在正式使用时,应考虑到安全因素。

 

 

 

本文适用于 .NET Framework 4

 

转载于:https://www.cnblogs.com/snowdream/archive/2011/04/19/upload-file-to-aspnet-mvc-website.html

转载地址:https://blog.csdn.net/weixin_30267785/article/details/99155858 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:运维项目组 随笔
下一篇:ZOJ 1011 NTA(二叉树+vector)

发表评论

最新留言

很好
[***.229.124.182]2024年04月03日 13时53分52秒