大家可讨论一下,对于asp可用vb写组件解决,而php我就不知如何入手了,不可能写vb组件,要不这贴子沉了真有点可惜啊,心也痛!!!!!

解决方案 »

  1.   

    传输速度只能估计,而且涉及到页面的不间断更新,而HTTP是无连接无状态的。
    所以用PHP实现不太可能,可以考虑用JS来模拟进度条。大家都是来讨论问题的,分数不重要。
      

  2.   

    我也想做,但好像只有ASP的。
    关注,帮楼主顶
      

  3.   

    做是可以做的,但是可能不是很精确
    (1) ping一下得到速率,存在一个文本里(可能需要一个js)
    (2) 用文件大小/速率=时间
    (3) 时间分成10个(或者更多)小块
    (4) 在时间内一块一块的显示
      

  4.   

    楼上的兄弟说的也是,这样的话写入文本文件,然后读取要一定时间,这样的话结果可能不精确,现在希望谁能够提供更好的方法,我希望能够在window,linux下运行,而不只限于window,希望大家up!!!!!
      

  5.   

    关注ing!我曾经做过。可是没有做出来!
      

  6.   

    能否先讲一讲ASP中的做法如何?
      

  7.   

    既然你会vb就好办多了,这里有一个vb写的,你可以参考,php的最近我没有时间,等有时间写一个大家分享:)
    Public Function backupDatabase(ByVal strSource As String, ByVal strDes As String)
        On Error GoTo ErrHandle
        
        Dim Handle_Src, Handle_Dest As Long
        Dim Buf(255) As Byte
        Dim lngFileSize, dwRead, dwWrite As Long
        Dim i As Long
        Dim ret As Long
        
        
        Handle_Src = CreateFile(strSource, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0&)
        If (Handle_Src = INVALID_HANDLE_VALUE) Then
           MsgBox "获得源文件句柄失败!"
           Exit Function
        End If
        
        
        Handle_Dest = CreateFile(strDes, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0&, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0&)
        If (Handle_Dest = INVALID_HANDLE_VALUE) Then
           MsgBox "获得目的文件句柄失败"
           Exit Function
        End If
        
        lngFileSize = GetFileSize(Handle_Src, lngFileSize)
        With ProgressBar
           .Min = 0
           .Max = Int(lngFileSize / 255)
        End With
        For i = 0 To Int(lngFileSize / 255)
           ret = ReadFile(Handle_Src, Buf(1), UBound(Buf), dwRead, ByVal 0&)
           ret = WriteFile(Handle_Dest, Buf(1), dwRead, dwWrite, ByVal 0&)
           ret = GetLastError()
           ProgressBar.Value = i
        Next i
        CloseHandle Handle_Src
        CloseHandle Handle_Dest
        Exit Function
    ErrHandle:
        MsgBox "备份失败,请重试!", vbYesNo + vbCritical, "数据备份"
    End FunctionPrivate Sub cmdCancel_Click()
        Unload Me
    End Sub上面的使用sdk(api函数)实现的,本来想用put和get函数,但是由于vb的get函数会自动为被写文件添加18个字节的文件属性方面的附加信息,导致文件不可读。
    我想在php里应该用fread和fwrite可以实现,没有试过,我想把文件分割成规定大小的"块"来拷贝,应该和网路的传输速率没有关系,因为直接使用的是源文件和目的文件的大小来决定拷贝的进度的:)
      

  8.   

    PHP中,用FTP方式可以实现吗?最好给出操作的代码,我可以另外加100分,THANKS
      

  9.   

    关注wangdongzjk(东)的PHP上传程式,最好快点O,楼主和我都等着给你加分!