设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 8569|回复: 18
打印 上一主题 下一主题

关于文件传送回调函数

[复制链接]

12

主题

53

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
跳转到指定楼层
楼主
发表于 2013-11-29 14:47:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用户101给102传递文件

101控制台打印
BRAC_TransFile(102, realPath,1,2,0);
AddLog("realPath="+realPath);
============realPath=D:\测试\测试.txt

102回调函数被触发,打印
function OnAnyChatTransFile(dwUserId, lpFileName, lpTempFilePath, dwFileLength, wParam, lParam, dwTaskId) {

     AddLog("lpTempFilePath="+lpTempFilePath);
}
============lpTempFilePath=D:\PROGRA~1\BAIRUI~1\ANYCHA~1\temp\测试.txt

传送的路径和接收到的路径不一样?
传过去的文件是直接保存在对方的路径下面了吗?还是传的是一组数据流?我如何把对方传的文件保存到任意位置?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
沙发
发表于 2013-11-29 15:03:05 | 只看该作者
您好。发送路径是指发送源文件路径,回调中触发的路径是接收路径。接收路径要在接收文件之前设置,设置之后回调中就是这个路径,你可以根据这个路径将文件保存到其他地方
回复 支持 反对

使用道具 举报

12

主题

53

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
板凳
 楼主| 发表于 2013-11-29 15:50:27 | 只看该作者
廖斌 发表于 2013-11-29 15:03
您好。发送路径是指发送源文件路径,回调中触发的路径是接收路径。接收路径要在接收文件之前设置,设置之后 ...

您好,能详细解说一下吗?
我把路径在全局变量设置了一下,结果还是1楼说的那样
var lpTempFilePath = "D:\\测试\\";
function OnAnyChatTransFile(dwUserId, lpFileName, lpTempFilePath, dwFileLength, wParam, lParam, dwTaskId) {
     AddLog("lpTempFilePath="+lpTempFilePath);
}
接收方打印的路径还是D:\PROGRA~1\BAIRUI~1\ANYCHA~1\temp\测试.txt

这个是把文件自动保存到lpTempFilePath这个路径吗?开发手册上说意思是自动保存,但是木有
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
地板
发表于 2013-11-29 16:07:42 | 只看该作者
cg0071 发表于 2013-11-29 15:50
您好,能详细解说一下吗?
我把路径在全局变量设置了一下,结果还是1楼说的那样
var lpTempFilePath =  ...

您好。
var lpTempFilePath = "D:\\测试\\";
不是这样设置的哦。可以在初始化sdk完成之后设置BRAC_SetSDKOption(BRAC_SO_CORESDK_TMPDIR,"d:\\test");
回复 支持 反对

使用道具 举报

10

主题

32

帖子

120

积分

注册会员

Rank: 2

积分
120
5#
发表于 2013-11-29 17:35:57 | 只看该作者
你的完整路径是怎么获得的?
回复 支持 反对

使用道具 举报

12

主题

53

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
6#
 楼主| 发表于 2013-12-2 13:47:48 | 只看该作者
adminivt 发表于 2013-11-29 17:35
你的完整路径是怎么获得的?

你指的是发送方选择本地文件的路径?

这个用的是input标签type="file"来获取的,只有ie可以,火狐、chrome都不行(浏览器给加密禁用了)

在这里想问问论坛的前辈们:

你们开发的这个传送文件函数,需要填写本地文件的路径,前提是怎么考虑来获取本地文件的路径的(只考虑Windows系统)?我暂时只想到用input标签来获取……
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9079

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9079
7#
发表于 2013-12-2 14:04:17 | 只看该作者
您好,在AnyChat for Web SDK中,API:BRAC_TransFile的参数filepath可以为空,内核将自动弹出文件选择窗口,不需要浏览器弹出,可适应IE、Firefox、Chrome等其它浏览器。

参考:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

12

主题

53

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
8#
 楼主| 发表于 2013-12-2 15:56:06 | 只看该作者
本帖最后由 cg0071 于 2013-12-2 16:22 编辑
admin 发表于 2013-12-2 14:04
您好,在AnyChat for Web SDK中,API:BRAC_TransFile的参数filepath可以为空,内核将自动弹出文件选择窗口 ...

更新web插件后,确实可以了,但是发送方发送后,对方的回调函数木有触发了(此时对方不在线),
1.  是不是要求对方必须在线?但是var transFileId = BRAC_TransFile(102, "",1,2,0);之后再查询进度的时候返回5(接收方取消任务),但是这个不能说明是离线还是取消了?
2.  发送方发送文件后(100M的),BRAC_QueryTransTaskInfo(mSelfUserId,transFileId,BRAC_TRANSTASK_STATUS); 首次返回一个2(正在传输),那么传送完成后会不会自动再触发一次查询的?还是要我自己不停的检测是否发送完成?
3.  接收方如何查询传输进度等信息?

回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9079

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9079
9#
发表于 2013-12-2 16:29:59 | 只看该作者
您好:
1、需要双方都在线,传输才能正常的进行;
2、你可以启动一个定时器,比如500ms,定期的来查询传输进度、状态等;
回复 支持 反对

使用道具 举报

12

主题

53

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
10#
 楼主| 发表于 2013-12-2 17:09:46 | 只看该作者
admin 发表于 2013-12-2 16:29
您好:
1、需要双方都在线,传输才能正常的进行;
2、你可以启动一个定时器,比如500ms,定期的来查询传 ...

谢谢,第三点怎么实现?接收方如何查看传输进度?比如类似QQ的那种效果。
再加一点:
4. 可不可做一个在线截图功能,发送后,房间内的人都能看到,跟聊天记录一样的效果
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-5-11 07:19 , Processed in 0.126447 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表