想实现一个作业的上传与下载的功能模块.
1)拥有上传与下载的功能
2)不同的登录用户对应自己的文件夹
3)管理员可以限制上传文件的类型主要是word文档和图片
4)记录用户上传文件的时间,储存于数据库中

解决方案 »

  1.   

    上传文件时用一个HTML的filefield控件,先把它转换为服务器控件就可以了,然后先获得上传的这个文件类型,比如用type来保存类型string type=File1.PostedFile.ContentType.ToString();,此时作个判断,如果type="application/msword"就允许上传,数据库那边 用一个image类型字段,用流的形式将word写入数据库,同时记录上传时间。
    图片的和这个原理一样
      

  2.   

    下载时可以用流的形式从数据库读出,让用户下载就可以了
    我的csdn博客里有个类似的例子,但现在csdn的博客好像不好用,你可以到孟老大的网上看看,那里有些类似的
      

  3.   

    上传与下载在asp.net里还是很容易实现的
      

  4.   

    1)拥有上传与下载的功能
    这个在net里面还是比较容易实现的,自己看一下帮助里面的上传的例子即可.主要是下载,你最好用流方式给用户下载,这样可控制权限,避免用直接下载的方式下载.
    2)不同的登录用户对应自己的文件夹
    这个就有一点小技巧,你可以在上传时,根据用户的ID号来产生文件夹.先判断有否此文件夹,无则创建,有则写入.
    3)管理员可以限制上传文件的类型主要是word文档和图片
    为了防止修改上传文件后缀名,你可建立一张表,专门把各类文件的MIME类型写入并建立对应关系,在上传同时,抽取该文件的MIME类型进行判断,在允许范围内则上传,不允许则弹出消息框并回退.
    4)记录用户上传文件的时间,储存于数据库中
    这个上传里面已经可以了,你可把文件名等信息一并存入下面给出上传简要示例System.Web.HttpPostedFile myFile = this.Request.Files[0];
    if(myFile.ContentLength != 0)
    {
    string tmpFileName = myFile.FileName;
    string myFileName = tmpFileName.Substring(tmpFileName.LastIndexOf("."));
    string myFileMimeType = myFile.ContentType();
    myFile.SaveAs(this.Server.MapPath("../" + myFileName));
    }
    下面是一个流下载的示例(VB版本,但大致相同,修改一下即可)Dim Flag As String 
    Dim Path As String Flag = Request("Flag") 
    If Flag = "MailFiles" Then 
    Path = "D:\MailFiles\" & Request("File") 
    Else 
    Path = "D:\ATT\" & Request("File") 
    End If 
    Dim File As New System.IO.FileInfo(Path) 
    Response.Clear() 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + File.Name) 
    Response.AddHeader("Content-Length", File.Length.ToString()) 
    Response.ContentType = "application/octet-stream" 
    Response.WriteFile(File.FullName) 
    Response.End() 
    --------------------------------------------------------------- try Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(File.Name))
      

  5.   

    谢谢各位,我现在知道大致思路了.不过还是对具体的参数知道他的意思.
    我的窗体有一个file filed 控件,id:file1一个button服务器控件id:btnupload.
    Private Sub btnupload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnupload.Click
    Dim filename, filetype As String
    Dim files As System.Web.HttpFileCollection =System.Web.HttpContext.Current.Request.Files
    Dim iFile As System.Int32
    Dim postedFile As System.Web.HttpPostedFile = files(iFile)
    filename = postedFile.FileName               '获得文件名
    filetype = postedFile.ContentType()          '获得文件类型
            
    If type = "application/msword" Then          '判断是否为word
                If postedFile.ContentLength <> 0 Then        '判断文件是否为空
                    postedFile.SaveAs("C:\" + filename)
                End If
    End If
    End Sub-----------------------------------------------------------------
    Dim postedFile As System.Web.HttpPostedFile = files(iFile)中的files(iFile)是什么意思?
    我的file filed 控件id为:file1
    filename = postedFile.FileName
    filetype = postedFile.ContentType()
    这两句可以得到用户选择的文件名和类型吗?如果有多个file filed想同时上传多个文件.怎么同时获得他们的上传文件名和类型啊?
    postedFile.SaveAs("C:\" + filename)这句就可以把上传的文件保存在C:\了吗?
      

  6.   

    多个上传框则这样
    Dim postedFile As System.Web.HttpPostedFile = files(me.上传框对象.ID)
    这样就可区分开多个上传框
      

  7.   

    Dim postedFile As System.Web.HttpPostedFile = me.request.files(me.上传框对象.ID)
    上面写错了