首页 > 代码库 > 不使用ASP.NET中的服务器控件将如何上传文件?

不使用ASP.NET中的服务器控件将如何上传文件?

遇到文件的上传时,可能会有大部分的开发者喜欢使用服务器控件,虽然很方便,但是却不能很好的控制,不具灵活性。

现给出例子,使用html标签语言灵活的控制文件的上传。

1、html部分

<input type="file" id="uploadFile" name="uploadFile" style="display: none;"/><a href="http://www.mamicode.com/#" id="uploads">上传文件</a><input type="hidden" id="txtFile" name="txtFile" value=""/><div class="img"></div>

2、JS部分

<script type="text/javascript">        $(document).ready(function () {            //单击div触发文件的上传事件            $(".img").click(function() {                $("#uploadFile").click();            });            $("#uploads").click(function () {                ajaxFileUpload();            });        });                function ajaxFileUpload() {            $.ajaxFileUpload            (                          {                    url: ‘/plus/upload.aspx‘, //用于文件上传的服务器端请求地址                        secureuri: false, //是否需要安全协议,一般设置为false                    fileElementId: ‘uploadFile‘, //文件上传域的ID                    dataType: ‘json‘, //返回值类型 一般设置为json                    success: function(data, status) //服务器成功响应处理函数                    {                        $("#img1").attr("src", data.imgurl);                        $("#txtFile").val(data.imgurl);                        if (typeof (data.error) != ‘undefined‘) {                            if (data.error != ‘‘) {                                alert(data.error);                            } else {                                alert(data.msg);                            }                        }                    },                    error: function(data, status, e) //服务器响应失败处理函数                    {                        alert(e);                    }                }            );            return false;        }    </script>

3、uoload.aspx.cs代码部分

protected void Page_Load(object sender, EventArgs e){                        HttpFileCollection files = Request.Files;            string msg = string.Empty;            string error = string.Empty;            string imgurl = string.Empty;                        if (files.Count > 0)            {                string fileUrl = Server.MapPath("/") + "uploadfiles\\scholar\\temp\\";  //获取web服务器所在的物理路径                //若文件夹不存在就创建                if (!Directory.Exists(fileUrl))                {                    Directory.CreateDirectory(fileUrl);                }                string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + files[0].FileName.Substring(files[0].FileName.IndexOf(‘.‘));//修改文件名称                files[0].SaveAs(fileUrl + fileName);    //将上传的文件保存到指定服务器的文件夹中                msg = "上传成功! 文件大小为:" + ((float)files[0].ContentLength/(1024*1024)).ToString("0.00") + "MB";                imgurl = "/uploadfiles/scholar/temp/" + fileName;                string res = "{ error:‘" + error + "‘, msg:‘" + msg + "‘,imgurl:‘" + imgurl + "‘}";                Response.Write(res);                Response.End();                           }}