asp.net上传文件

第一种方法

前端:

   


        单文件上传
       

           
           
       

   

后端:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class upload_upload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpContext context = HttpContext.Current;
        context.Response.ContentType = "text/plain";
        //获取所有的上传文件
        //如果上传的文件超过了4M,则会报异常[超过了最大请求长度。],需要在Web.config配置
        HttpFileCollection hfc = context.Request.Files;
        //如果是hfc.Count为0,则可以认为是直接请求该ashx处理程序
        for (int i = 0; i < hfc.Count; i++)
        {
            HttpPostedFile hpf = hfc[i];
            if (hpf.ContentLength > 0)
            {
                //大小限制
                int maxSize = 2 * 1024 * 1024;  //最大是2M(转换为字节)
                if (hpf.ContentLength > maxSize)
                {
                    context.Response.Write("上传文件大小超出限制");
                    return;
                }
                //扩展名限制
                string[] exts = { "image/jpg", "image/jpeg", "image/gif", "image/png" };
                if (!exts.Contains(hpf.ContentType.ToLower()))
                {
                    context.Response.Write("必须上传图片文件");
                    return;
                }
                string fileName = Path.GetFileName(hpf.FileName);
                hpf.SaveAs(context.Server.MapPath("~/upload/" + fileName));
            }
        }

        获取指定name的文件上传
        该方式如果是html5的则始终是获取第一个上传的文件,multiple
        是支持多个文件上传,所以如果上传文件多于一个,则会丢失
        //HttpPostedFile hpf = context.Request.Files["files"];
        //if (hpf!= null && hpf.ContentLength > 0)
        //{
        //    hpf.SaveAs(context.Server.MapPath("~/UpLoad/" + Path.GetFileName(hpf.FileName)));
        //}
        context.Response.Write("上传成功");
    }
}

第二种方法

前端(1)

js

function uploadFile(){
        let files = $("#file").prop("files");
        let formData = new FormData();
        // 对每个文件进行循环处理
        for (let i = 0; i < files.length; i++) {
            let file = files[i];
            // 添加文件到formData
            formData.append('files['+i+']', file, file.name);
        }
        $.ajax({
            url: ctx + "/file/upload",
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            async: false,
            cache: false,
            success: function(data) {
                console.log(data);
            }
        });
    }

前端(2)

js

   


       
       
   

   

你可能感兴趣的:(asp.net,后端)