zoukankan      html  css  js  c++  java
  • 技术专题:服务器控件之——文件上传

    注:这篇是看了穿哥的教程,提了几个问题,放在下面:大家共同来探讨

    step 1: 新建一个网站,语言:Visual C#,于是产生了一个Default.aspx 和一个Default.aspx.cs的文件;

    step 2: 在Default.aspx 文件的同级目录新建一个up文件夹和一个 upfile文件夹用来存放上传的文件;

    step 3: 在Default.aspx .aspx文件的设计视图下从工具箱中拖出4的服务器控件,
                 分别是:FileUpLoad 、Button 、Image 、Label ;

    step 4: 根据自己的喜好排列好各个控件,并将Image 、Label 两个控件的显示区域拉大一些;

    step 5: 将 Label 控件的 text 属性改为 空值;将Button控件的text 属性改为"上传";

    step 6: 将4个控件的ID属性改为:upFileUpLoad1 、upButton1 、upImage1 、upLabel1 ; 
                 即:加上"up",我们要养成改ID的习惯;

    step 7:在Default.aspx .aspx文件的设计视图下,双击Button控件进入编程,代码如下:

    protected void upButton1_Click(object sender, EventArgs e)
        {
            
    string name = upFileUpload1.FileName; //获取已上传文件夹的名字
            string size = upFileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件夹的大小
            string type = name.Substring(name.LastIndexOf("."+ 1); //得到文件的后缀

            
    string ipath = Server.MapPath("up"+ "\\" + name; //获取文件夹上传的实际路径
            string fpath = Server.MapPath("upfile"+ "\\" + name; //获取文件夹上传的实际路径
            string wpath = "up\\" + name;                          //写入到数据库去的虚拟路径


            
    //下面我们得判断文件格式
            if (type == "jpg" || type == "gif" || type == "bmp" || type == "png")
            {
                upImage1.Visible 
    = true;
                upFileUpload1.SaveAs(ipath); 
    //将文件保存到path这个路径里面
                upImage1.ImageUrl = wpath;   //让图片显示出来
                upLabel1.Text = "你传的文件名称是:" + name + "<br>文件大小为:" + size + "字节<br>文件类型是:" + type + "<br>后缀名是:" + type + "<br>实际路径是:" + ipath + "<br>虚拟路径是:" + wpath;
            }
            
    else
            {
                upImage1.Visible 
    = false//将图片控件隐藏,否则它会出现一个小XX
                upFileUpload1.SaveAs(fpath); //将文件夹保存在另一个文件夹
                upLabel1.Text = "你传的文件名称是:" + name + "<br>文件大小为:" + size + "字节<br>文件类型是:" + type + "<br>后缀名是:" + type + "<br>实际路径是:" + ipath + "<br>虚拟路径是:" + wpath;
            }
        }


    step 8: Page_Load 中加上如下代码:

    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!this.IsPostBack)
            {
                upImage1.Visible 
    = false//将图片控件隐藏,否则它会出现一个小XX
            }
        }


    step 9:
    OK了,启动调试


    问题,请高手指教:

    · 同时上传多个文件
    · 文件后缀是小写的可以下传,如jpg,gif,bmp,png的可以上传,但如果是大写的后缀就不行了
    · 上传文件多了,那文件的 重名 问题怎么解决
    · 怎么防止恶意攻击
  • 相关阅读:
    【javascript】手写call,apply,bind函数
    http压缩 Content-Encoding: gzip
    【javascript】强大的CSS3/JS:帧动画的多种实现方式与性能对比
    【canvas】html5 canvas常用api总结(二)--图像变换API
    【canvas】html5 canvas常用api总结(一)--绘图API
    python的列表试用3-6
    UIImagePickerController获取照片的实现,添加overlay方法 (相机取景框)
    调试JDK1.8源码的方法
    多线程-Executor,Executors,ExecutorService,ScheduledExecutorService,AbstractExecutorService
    多线程-Fork/Join
  • 原文地址:https://www.cnblogs.com/yoyebina/p/532458.html
Copyright © 2011-2022 走看看