200分求助分块读取文件流问题!!

skyaspnet 2012-04-06 07:09:32
加精


如何在PHP中分块读取文件流,也就是说当使用 fopen打开一个文件以后,

如何能分块读取文件流?


PS: 由于要分块上传文件,因此需要将文件进行拆分,目前已有的办法是分块读取到字符串中,然后写入临时文件,

想了解有没有办法能直接分块读取文件流,而不使用临时文件?

谢谢!
...全文
4075 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
franzhong 2012-04-17
  • 打赏
  • 举报
回复
是可以断点续传的,
不妨分析迅雷发送的头部分
临时文件通常都是记录文件,是必须得有的
这正是迅雷在未完成是两个文件
完成以后就合并成一个了
也有是一个的,但是写到文件尾部去了,下载完后就清除掉
blizzf99 2012-04-16
  • 打赏
  • 举报
回复
顶帖收藏。
Yami365 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 的回复:]

像115网盘,QQ邮箱中的大附件上传控件,DBank(华为网盘),金山快盘等越来越多的互联网企业使用断点续传技术来提高他们的用户体验。
此控件支持2G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

……
[/Quote]

你这是收费ACTIVEX控件的
NovalIDE 2012-04-13
  • 打赏
  • 举报
回复
// SkinButton.cpp : implementation file
//

#include "stdafx.h"
#include "CustomSkin.h"
#include "XButton.h"
#include <mmsystem.h>
// CSkinButton

IMPLEMENT_DYNAMIC(CSkinButton, CButton)

CSkinButton::CSkinButton()
{
m_NormalImags.m_Image.Clear();
m_OverImages.m_Image.Clear();
m_DownImages.m_Image.Clear();
m_DisableImages.m_Image.Clear();
m_allImage.m_Image.Clear();
m_CheckedDisableImages.m_Image.Clear();

m_Style = NORMAL; //按钮形状风格
b_InRect = false; //鼠标进入标志
m_strText = ""; //按钮文字(使用默认文字)
m_TextForeColor = RGB(0,0,0); //文字颜色(黑色)
m_BackColor = RGB(243,243,243); //背景色(灰白色)
m_LockForeColor = GetSysColor(COLOR_GRAYTEXT); //锁定按钮的文字颜色
p_Font = NULL; //字体指针
m_ImageSize.SetSize(0,0);

nTxtLeft = 0;
nTxtTop = 0;

nImageLeft = 0;
nImageTop = 0;

//不画焦点虚线框
m_bDrawFocus = FALSE;
//不显示tooltip
bShowTooltip = FALSE;
}

CSkinButton::~CSkinButton()
{
if ( p_Font )
delete p_Font; //删除字体
}

BEGIN_MESSAGE_MAP(CSkinButton, CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_SIZE()
END_MESSAGE_MAP()

// CSkinButton message handlers

void CSkinButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC *pDC = CDC::FromHandle( lpDrawItemStruct->hDC );
m_ButRect = lpDrawItemStruct->rcItem; //获取按钮尺寸

int nSavedDC = pDC->SaveDC();
VERIFY( pDC );
//DrawButton( pDC ); //绘制按钮
DrawSkinButton(pDC);
pDC->RestoreDC( nSavedDC );

OutputDebugStr("draw skin button......\r\n");
}

E次奥 2012-04-13
  • 打赏
  • 举报
回复

这个东西我也想学习,谁给个资料啊。
  • 打赏
  • 举报
回复
支持下
liyf_liyunfeng 2012-04-12
  • 打赏
  • 举报
回复
也麻烦给我一份
小昌 2012-04-11
  • 打赏
  • 举报
回复
有收获。
xinfengj7 2012-04-11
  • 打赏
  • 举报
回复
看看支持一下啊 好贴
ddboy 2012-04-10
  • 打赏
  • 举报
回复
那个swfupload控件就是用base64这种方式处理的, 不过个人建议,有条件的, 还是用 php://input 这种方式, 毕竟解码是很占资源的
wildman159 2012-04-10
  • 打赏
  • 举报
回复
大家回复帖子的时候 最好能使用 CODE!!!
oppo11 2012-04-10
  • 打赏
  • 举报
回复
大家回复帖子的时候 最好能使用 CODE!!!
清天灵月 2012-04-10
  • 打赏
  • 举报
回复
大家回复帖子的时候 最好能使用 CODE!!!
yb3328 2012-04-10
  • 打赏
  • 举报
回复
求指点
wurmyq 2012-04-10
  • 打赏
  • 举报
回复
像115网盘,QQ邮箱中的大附件上传控件,DBank(华为网盘),金山快盘等越来越多的互联网企业使用断点续传技术来提高他们的用户体验。
此控件支持2G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。
文件MD5值计算进度:

文件MD5值计算完毕

服务器根据MD5检测是否存在相同文件

续传文件

从服务器加载文件列表

文件上传中

文件上传完毕

上传文件夹

与Discuz!X2整合-后台安装断点续传控件

与Discuz!X2整合-后台启用断点续传控件

与Discuz!X2整合-后台断点续传控件启用成功

与Discuz!X2整合-前台发帖页面

与Discuz!X2整合-上传

ghrui 2012-04-10
  • 打赏
  • 举报
回复
抱着学习的心态进来
GZQ1996 2012-04-10
  • 打赏
  • 举报
回复
不懂 .
wz1whj 2012-04-10
  • 打赏
  • 举报
回复
也麻烦给我一份
zdwlosunlht 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 的回复:]

话说现在超大文件断点续传控件狠话火啊,已经成为了互联网的基本应用了。
越来越多的系统开始增加这个功能了。以前只有互联网巨头开发的系统才有。
[/Quote]
这个功能对于企业来讲非常实用,随着互联网的发展,现在越来越多的信息需要我们处理,同时信息的尺寸也变的越来越大,比如一张高清图片可能就大几十MB,一部高清电影就得奔十几G了,而传统的HTML方式又不支持这种断点续传功能,所以这种需求就越显得突出了。
zha02ruts1yun 2012-04-10
  • 打赏
  • 举报
回复
话说现在超大文件断点续传控件狠话火啊,已经成为了互联网的基本应用了。
越来越多的系统开始增加这个功能了。以前只有互联网巨头开发的系统才有。
加载更多回复(23)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧