C#使用HTML文件中的file文件上传,用C#代码接收上传文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#使用HTML文件中的file文件上传,用C#代码接收上传文件相关的知识,希望对你有一定的参考价值。

<form>
<input id="fileUpLoad" name="fileUpLoad" type="file"/>
<input id="submit" name="submit" type="submit"/>
</form>
C#使用html文件中的file文件上传,用C#代码接收上传文件

1、打开visual studio,新建一个asp.net网站。

2、创建一个asp.net窗体,比如名字叫default.aspx,输入代码。

3、这段代码的含义是,发送abcdefg到handle.ashx文件,发送结束,接收handle.ashx返回的文本信息。

4、在建一个ashx文件,取名为handle.ashx。

5、在ashx文件中,输入代码。

6、这段代码的具体说明如下。就完成了。

参考技术A <form id="form1" method="post" enctype="multipart/form-data" action="test.aspx">
       <input id="File1" type="file" name="File1"/>
       <input id="Submit1" type="submit" value="submit" />
   </form>

c# 代码  test.aspx.cs后台代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


public partial class test : System.Web.UI.Page

    protected void Page_Load(object sender, EventArgs e)
    
        if (Request.Files.Count>0)
        
            HttpPostedFile f = Request.Files[0];
            f.SaveAs(Server.MapPath("test.dat"));
        
    

参考技术B

1、C#实现图片上传代码如下

  //图片上传
        protected void Bt_save_Click(object sender, EventArgs e)
        

            //上传
            if (Upload_image.HasFile)
            

                string savePath = Server.MapPath("~/upload/");//指定上传文件在服务器上的保存路径
                //检查服务器上是否存在这个物理路径,如果不存在则创建
                if (!System.IO.Directory.Exists(savePath))
                
                    System.IO.Directory.CreateDirectory(savePath);
                
                //未知原因  upload.file 在上传图片后变成未选定  - 设置它已经选定了
                string ext = System.IO.Path.GetExtension(Upload_image.FileName);
                if (ext == ".jpg" || ext == ".png")
                    //图片重命名,userid+getdatetime
                    string time = DateTime.Now.ToString("yyyyMMddhhmmss");
                    string userid = Session["userid"].ToString();
                    string newname = "eshop" + userid + time + ext;
                    savePath = savePath + "\\\\" + newname;
                    Upload_image.SaveAs(savePath);
                    //路径存session ,稍后加入数据库
                    Session.Remove("imageurl");//新上传清空已经存的
                    Session.Add("imageurl", "~/upload/" + newname);
                    Lb_image.Text = "已选择" + Upload_image.FileName;
                    this.Image_goods.ImageUrl = "~/upload/" + newname;
                
                else  Lb_image.Text = "图片仅支持JPG、png格式!"; 
            
            else
            
                Lb_image.Text = "没有选择图片!";
            
        

参考技术C

前端代码 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileUpLoad.aspx.cs" Inherits="DEMO.FileUpLoad" %>

 
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Image ID="Image1" runat="server"/> 
       <asp:Button ID="btnUpLoad" runat="server" Text="上传" OnClick="btnUpLoad_Click" />  
       <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>  
    </div>
    </form>
</body>
</html>

后端代码

//string serverpath = Server.MapPath("~/ImageFile");
            if (FileUpload1.PostedFile.ContentLength > 0)
            
                if (File.Exists(@"C:\\Users\\WJM\\documents\\visual studio 2013\\Projects\\DEMO\\DEMO\\ServerImages\\" + FileUpload1.PostedFile.FileName))
                
                    Label1.Text = "文件已经存在";
                
                else
                
                    FileUpload1.PostedFile.SaveAs(@"C:\\Users\\WJM\\documents\\visual studio 2013\\Projects\\DEMO\\DEMO\\ServerImages\\" + FileUpload1.PostedFile.FileName);

                    this.Image1.ImageUrl = this.Image1.ImageUrl = @"ServerImages/"+FileUpload1.PostedFile.FileName;//相对路径,将上传的图片给Image控件;//相对路径,将上传的图片给Image控件
                    Label1.Text = "上传成功!";
                

            
            else
            
                Label1.Text = "上传失败";
            

参考技术D //HTML页面
<div>
<label>文件:</label> <input id="file" type="file" />
<button id="btnUpload">上传</button>
</div>
<script>
$("#btnUpload").on("click", function ()
var formdata = new FormData();
var file = $("#file").get(0).files[0];
formdata.append("file1", file);
$.ajax(
type:"post",
url: "Upload",//url地址
contentType: false,
cache: false,
processData: false,
data: formdata,
success: function (data)
console.log(data);

);
);
</script>
//MVC的Action
[HttpPost]
public ActionResult Upload()

var files = Request.Files;
for (int i = 0; i < files.Count; i++)

var file = files[i];
//To Do
//........

return View();

如果有需要的话可以联系我 我这边又一个简单的demo

HTML C# ajax结合ashx处理程序实现文件上传

ajax结合ashx处理程序实现文件上传

一、ajaxFileUpload是一个异步上传文件的jQuery插件。

  ajaxFileUpload参数说明:(copy了别人的参数说明)

1、url            上传处理程序地址。  
2,fileElementId       需要上传的文件域的ID,即<input type="file">的ID。
3,secureuri        是否启用安全提交,默认为false。 
4,dataType        服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
5,success        提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
6,error          提交失败自动执行的处理函数。
7,data           自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
8, type            当要提交自定义参数时,这个参数要设置成post

 

HTML代码:

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 5     <title></title>
 6     
 7     <!--引用相关的js文件  注意先引用jquery-->
 8     <script src="js/jquery-1.11.3.js"></script>
 9     <script src="js/ajaxfileupload.js"></script>
10     
11     <style>
12         .file {
13             position: relative;
14             background-color: #b32b1b;
15             border: 1px solid #ddd;
16             width: 68px;
17             height: 25px;
18             display: inline-block;
19             text-decoration: none;
20             text-indent: 0;
21             line-height: 25px;
22             font-size: 14px;
23             color: #fff;
24             margin: 0 auto;
25             cursor: pointer;
26             text-align: center;
27             border: none;
28             border-radius: 3px;
29         }
30 
31             .file input {
32                 position: absolute;
33                 top: 0;
34                 left: -2px;
35                 opacity: 0;
36                 width: 10px;
37             }
38     </style>
39     <script>
40         $(function () {
41             //选择文件
42             $(".file").on("change", "input[type=‘file‘]", function () {
43                 var filePath = $(this).val();
44                 //设置上传文件类型
45                 ////if (filePath.indexOf("xls") != -1 || filePath.indexOf("xlsx") != -1) {
46          
47                     //上传文件
48                     $.ajaxFileUpload({
49                         url: FileHandler.ashx,//处理程序路径
50                         secureuri: false,
51                         fileElementId: btnfile,
52                         dataType: json,
53                         success: function (data, status) {
54                             //获取上传文件路径
55                             //$("#txt_filePath").val(data.filenewname);
56                             alert("文件上传成功!");
57                         },
58                         error: function (data, status, e) {
59                             //alert(e);
60                             alert("not");
61                         }
62                     });
63 
64                     
65                 ////} else {
66                 ////    alert("请选择正确的文件格式!");
67                 ////    //清空上传路径
68                 ////    $("#txt_filePath").val("");
69                 ////    return false;
70                 ////}
71             });
72         })
73     </script>
74 </head>
75 <body style="font-size:25px;">
76 
77     <!--ajax配合ashx实现文件上传-->
78 
79     <div>
80         <span>选择文件:</span><input id="txt_filePath" type="text" readonly="readonly" />
81         <a class="file"><input id="btnfile" name="btnfile" type="file" />浏览</a>
82     </div>
83 </body>
84 </html>

 

ashx代码:

 1 <%@ WebHandler Language="C#" Class="FileHandler" %>
 2 
 3 using System;
 4 using System.Web;
 5 
 6 public class FileHandler : IHttpHandler {
 7     
 8     public void ProcessRequest (HttpContext context) {
 9         //context.Response.ContentType = "text/plain";
10         //context.Response.Write("Hello World");
11 
12 
13         context.Response.ContentType = "text/plain";
14         string msg = string.Empty;
15         string error = string.Empty;
16         string result = string.Empty;
17         string filePath = string.Empty;
18         string fileNewName = string.Empty;
19 
20         //这里只能用<input type="file" />才能有效果,因为服务器控件是HttpInputFile类型
21         HttpFileCollection files = context.Request.Files;
22         if (files.Count > 0)
23         {
24             //设置文件名
25             fileNewName = DateTime.Now.ToString("yyyyMMddHHmmssff") + "_" + System.IO.Path.GetFileName(files[0].FileName);
26             //保存文件
27             files[0].SaveAs(context.Server.MapPath("~/Upload/" + fileNewName));
28             msg = "文件上传成功!";
29             result = "{msg:‘" + msg + "‘,filenewname:‘" + fileNewName + "‘}";
30         }
31         else
32         {
33             error = "文件上传失败!";
34             result = "{ error:‘" + error + "‘}";
35         }
36         context.Response.Write(result);
37         context.Response.End();
38     }
39  
40     public bool IsReusable {
41         get {
42             return false;
43         }
44     }
45 
46 }

如果想上传多张图片只要给  input 添加一个 multiple 属性

即:

<input id="btnfile" name="btnfile" type="file" multiple/>

就可以上传多个图片

ajaxFileUpload下载:

链接:https://pan.baidu.com/s/1slkfpOp 密码:5s8r








以上是关于C#使用HTML文件中的file文件上传,用C#代码接收上传文件的主要内容,如果未能解决你的问题,请参考以下文章

HTML C# ajax结合ashx处理程序实现文件上传

C# 调用科大讯飞语音转写接口上传音频文件转文字可直接用

求C# HTML源文件中的非HTML标签文本的替换方法

C# 用原生JS进行文件的上传

转载 C#文件上传

C# Asp.net使用FormData对象实现ajax提交表单及上传图片