hur.cn - 华软网

 热门搜索

PB6.5中怎样实现基础信息资料的上传与下载

  作者:未知    来源:网络    更新时间:2018/2/6
PB6.5中怎样实现基础信息资料的上传与下载,帮忙给个例子讲解一下。
万分感谢!!

------华软网友回答------
调用API实现
------华软网友回复------
给你一个sybase的标准程序

//////////////////////////////////////////////////////////////////////////////
// Public Function:  of_FileWrite
// Arguments: as_FileName The name of the file to write to.
// ablb_Data The data to be written to the file.
// ab_Append True - append to the end of the file,
// False - overwrite the existing file.
// Returns: Integer
// 1 if successful, -1 if an error occurrs.
// Description: Open, write from a blob, and close a file.  Handles blobs > 32,765 bytes.
//////////////////////////////////////////////////////////////////////////////
// Rev. History: Version
// 5.0   Initial version
//////////////////////////////////////////////////////////////////////////////
// Copyright ?1996-1999 Sybase, Inc. and its subsidiaries.  All rights reserved.  Any distribution of the 
// PowerBuilder Foundation Classes (PFC) source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//////////////////////////////////////////////////////////////////////////////
integer li_FileNo, li_Writes, li_Cnt
long ll_BlobLen, ll_CurrentPos
blob lblb_Data
writemode lwm_Mode

If ab_Append Then
lwm_Mode = Append!
Else
lwm_Mode = Replace!
End if

li_FileNo = FileOpen(as_FileName, StreamMode!, Write!, LockReadWrite!, lwm_Mode)
If li_FileNo < 0 Then Return -1

ll_BlobLen = Len(ablb_Data)

// Determine the number of writes required to write the entire blob
If ll_BlobLen > 32765 Then
If Mod(ll_BlobLen, 32765) = 0 Then
li_Writes = ll_BlobLen / 32765
Else
li_Writes = (ll_BlobLen / 32765) + 1
End if
Else
li_Writes = 1
End if

ll_CurrentPos = 1

For li_Cnt = 1 To li_Writes
lblb_Data = BlobMid(ablb_Data, ll_CurrentPos, 32765)
ll_CurrentPos += 32765
If FileWrite(li_FileNo, lblb_Data) = -1 Then
Return -1
End if
Next

FileClose(li_FileNo)

Return 1
------华软网友回复------
下载资料

//////////////////////////////////////////////////////////////////////////////
// Public Function:  of_FileRead
// Arguments: as_FileName The name of the file to read.
// as_Text[] An array of strings to hold the text from the file,
// passed by reference.
// Returns: Long - The number of elements in as_Text, returns -1 if an error occurrs.
// Description: Open, read, and close a file.  Handles files > 32,765 bytes by reading
// it into an array of strings.
//////////////////////////////////////////////////////////////////////////////
// Rev. History: Version
// 5.0   Initial version
//////////////////////////////////////////////////////////////////////////////
// Copyright ?1996-1999 Sybase, Inc. and its subsidiaries.  All rights reserved.  Any distribution of the 
// PowerBuilder Foundation Classes (PFC) source code by other than Sybase, Inc. and its subsidiaries is prohibited.
//////////////////////////////////////////////////////////////////////////////
integer li_FileNo, li_Cnt
long ll_FileLen, ll_Reads

ll_FileLen = FileLength(as_FileName)

li_FileNo = FileOpen(as_FileName, StreamMode!, Read!)
If li_FileNo < 0 Then Return -1

// Determine the number of reads required to read the entire file
If ll_FileLen > 32765 Then
If Mod(ll_FileLen, 32765) = 0 Then
ll_Reads = ll_FileLen / 32765
Else
ll_Reads = (ll_FileLen / 32765) + 1
End if
Else
ll_Reads = 1
End if

For li_Cnt = 1 to ll_Reads
If FileRead(li_FileNo, as_Text[li_Cnt]) = -1 Then
Return -1
End if
Next

FileClose(li_FileNo)

Return ll_Reads
------华软网友回复------
有意思!帮你ding
------华软网友回复------
是想制作一个类似FTP的东西么?
------华软网友回复------
up
------华软网友回复------
用winsocket控件实现,但是数据量大的情况,应该选用别的方式
------华软网友回复------
关注 + 友情UP
------华软网友回复------
这个实现起来好像问题比较大。可以想想用别的方法。如果不是必须的话。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。