• 7.31 文件上传


    文件上传:
    1、将文件上传到指定路径
    使用FileUpload控件,使用控件的SaveAs另存为方法,需 
    要绝对路径;

    string path = "Uploads/aaa.txt";//文件的相对路径
    string endPath = Server.MapPath(path);//将相对路径映射 
    成绝对路径
    FileUpload1.SaveAs(endPath);

    问题:
    文件名重名,文件被覆盖

    优化1:
    string path = "Uploads/" + FileUpload1.FileName;// 
    文件的相对路径
    可以保留用户选择的文件名称

    问题:
    许多人都上传文件,肯定会出现重名的情况,那 
    就被覆盖了

    优化2:
    //拼接上传时间,上传用户名,上传文件全称,防止并发 
    重名问题
    string name = DateTime.Now.ToString 
    ("yyyyMMddhhmmss") + Request.Cookies["user"].Value + 
    FileUpload1.FileName;

    问题:
    用户可能会上传超过默认大小的文件,那么程序就会崩溃 
    ,最大限制为4MB大小

    优化3:
    扩容、在Web.config配置文件里面添加以下一句话
    <system.web>
    <compilation debug="false" targetFramework="4.0" />
    <httpRuntime maxRequestLength="40960"/>//增加这一句 
    ,单位是KB
    </system.web>

    注意:扩容不要扩的太大,因为是占内存空间的;
    作业:去网上搜一下C#大文件上传,断点续传

    优化4:
    增加超大验证,有客户端验证和服务端验证两种方式;

    C#服务端验证:
    //检查是否有选中文件
    if (FileUpload1.HasFile)
    {
    //如果有选中文件,那么验证文件大小是否超过4MB
    if (FileUpload1.PostedFile.ContentLength > (4 
    * 1024 * 1024))
    {
    Label1.Text = 
    FileUpload1.PostedFile.ContentLength.ToString();
    }
    }

    JS客户端验证:
    <script type="text/javascript">
    window.onload = function () {
    document.getElementById('Button1').onclick = 
    function () {
    var fl1 = document.getElementById 
    ('FileUpload1');
    //判断是否有选中的文件
    if (fl1.value.length <= 0) {
    alert('请选择要上传的文件!');
    return false;
    }
    else {
    //验证大小是否超过限制
    if (fl1.files[0].size > (4 * 1024 * 
    1024)) {
    alert('文件超过4MB!');
    return false;
    }
    }
    };
    };
    </script>

    优化5:
    限制用户能选择的文件类型:
    限制普通人,控件属性:accept=".jpg,.jpeg,.png";
    限制奇葩:
    //看看你选择的文件是否符合我的要求
    if (fl1.value.substr(fl1.value.length - 4) 
    != '.jpg' && fl1.value.substr(fl1.value.length - 4) != 
    '.png' && fl1.value.substr(fl1.value.length - 5) != 
    '.jpeg')
    {
    alert(fl1.value.substr 
    (fl1.value.length - 4));
    return false;
    }

    优生活网站,新增产品,需要上传产品图片,1、将图片 
    传到服务器上来,2、将图片路径保存进数据库
    //-----------上传图片-------------
    //1、验证

    //2、将选中的文件上传到服务器指定文件夹上来
    string path = "images/" + DateTime.Now.ToString 
    ("yyyyMMddhhmmss") + FileUpload1.FileName;
    FileUpload1.SaveAs(Server.MapPath(path));

    //3、将图片路径存到数据库
    c.img = path;

    new chanpinData().Insert(c);

  • 相关阅读:
    DataGrid
    取整、取小数点位数
    如何跨浏览器使用连续字符的换行
    如何给 legend 标签设定宽度
    25个简洁优美的网站设计
    重新发现HTML表格
    用户研究角度看设计(2):用户为何视若无睹
    lineheight 属性的继承问题
    jQuery技巧总结
    web2.0网站配色方案
  • 原文地址:https://www.cnblogs.com/a454966933/p/5745386.html
Copyright © 2020-2023  润新知