谷歌浏览器layui上传本地文件到后台

前台代码

 <form id="fm_upload" class="layui-form layui-form-pane"
    method="post" enctype="multipart/form-data" runat="server">
                                        <div class="layui-upload">
                                            <input type="file" class="layui-btn layui-btn-primary" id="importexcel" name="importexcel" multiple="multiple" />
                                            <button id="UpFile" type="button" class="layui-btn layui-btn-sm">
                                                <i class="layui-icon">&#xe63c;</i>保存
                                            </button>
                                        </div>
    </form>

 

JS代码

<script type="text/javascript" src="../layui/layui.js"></script>
    <script type="text/javascript">

//上传文件的change事件
            $("#importexcel").change(function (){
            debugger;
                /* FormData 是表单数据类 */
                 var fd = new FormData();
                 var ajax = new XMLHttpRequest();
                 fd.append("upload", 1);
                 /* 把文件添加到表单里 */
                 fd.append("ProductImage", document.getElementById("importexcel").files[0]);
                 ajax.open("post", "UserManagement.aspx", true);

                 ajax.onload = function () {
                 console.log(ajax.responseText);
                };
                ajax.send(fd);
            })

</script>

 

后台代码

public partial class UserManagement : System.Web.UI.Page
{
    private static string path;
    protected void Page_Load(object sender, EventArgs e)
    {

        upload();

    }

public string upload()
    {
        StringBuilder jsonBuilder = new StringBuilder();
        jsonBuilder.Append("{\"");
        jsonBuilder.Append("msg\":");
        HttpFileCollection files = HttpContext.Current.Request.Files;
        if (files.Count > 0)
        {
            try
            {
                HttpPostedFile file = files[0];

//System.Web.HttpContext.Current.Request.ApplicationPath这个是程序运行的目录
                string filePath = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath + @"\UploadFiles\");
                string fileName = System.DateTime.Now.ToString("yyyy-MM-dd") + "SalesOrder.xls";
                path = System.IO.Path.Combine(filePath, System.IO.Path.GetFileName(file.FileName));
                //保存上传的文件到指定路径中也就是路径path
                file.SaveAs(path);

//现在我们可以去这个path路径读取Excel文件里
                //this.Sales_Upload.PostedFile.SaveAs(filePath);
                jsonBuilder.Append("ok\"");
            }
            catch (Exception ex)
            {
                Common.Error("Error" + ex.Message.ToString());
            }
        }
        jsonBuilder.Append("}");
        return jsonBuilder.ToString();
    }

//只是为了看效果,你们并不参与获取文件路径

//接下来在后台写一个ajax可访问的方法去弹出path

/// <summary>
    /// 获取RoleId
    /// </summary>
    /// <returns></returns>
    [WebMethod]
    public static string Upload_Save_file()
    {
        string result = path;
        return result;
    }

}

 

效果如图

谷歌浏览器layui上传本地文件到后台