- 浏览: 584606 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (365)
- Tomcat调优 (2)
- Apache Http (20)
- Webserver安装 (5)
- Linux安装 (28)
- Linux常用命令 (17)
- C语言及网络编程 (10)
- 文件系统 (0)
- Lucene (12)
- Hadoop (9)
- FastDFS (8)
- 报表 (0)
- 性能测试 (1)
- JAVA (18)
- CSharp (3)
- C++ (38)
- BI (0)
- 数据挖掘 (0)
- 数据采集 (0)
- 网址收集整理 (3)
- Resin (0)
- JBoss (0)
- nginx (0)
- 数据结构 (1)
- 随记 (5)
- Katta (1)
- Shell (6)
- webservice (0)
- JBPM (2)
- JQuery (6)
- Flex (41)
- SSH (0)
- javascript (7)
- php (13)
- 数据库 (6)
- 搜索引擎排序 (2)
- LVS (3)
- solr (2)
- windows (1)
- mysql (3)
- 营销软件 (1)
- tfs (1)
- memcache (5)
- 分布式搜索 (3)
- 关注的博客 (1)
- Android (2)
- clucene (11)
- 综合 (1)
- c c++ 多线程 (6)
- Linux (1)
- 注册码 (1)
- 文件类型转换 (3)
- Linux 与 asp.net (2)
- perl (5)
- coreseek (1)
- 阅读器 (2)
- SEO (1)
- 励志 (1)
- 在线性能测试工具 (1)
- yii (7)
- 服务器监控 (1)
- 广告 (1)
- 代理服务 (5)
- zookeeper (8)
- 广告联盟 (0)
- 常用软件下载 (1)
- 架设自已的站点心得 (0)
最新评论
-
terry07:
java 7 用这个就可以了 Desktop desktop ...
关于java Runtime.getRunTime.exec(String command)的使用 -
HSINKING:
怎么设置打开的dos 窗口是指定的路径下
关于java调用bat文件,不打开窗口 -
liubang201010:
hyperic hq更多参考资料,请访问:http://www ...
hyperic-hq -
^=^:
STDIN_FILENO是unistd.h中定义的一个numb ...
深入理解dup和dup2的用法 -
antor:
留个记号,学习了
[转]用java流方式判断文件类型
本文转自: http://www.dssky.net
近日,在CSDN论坛上 看到一个帖子,想要实现用PHP来得到swf文件帧数的功能,一些网友回复说不可能,其实是他们对swf文件格式不了解,swf文件格式规范是开放的,而 且也可以找到相当多的关于直接用PHP处理swf文件的,包括解析文件头,生成swf文件等。利用闲暇时间,我也写了一个粗陋的解析swf文件的类。
要想解析swf文件头,首先要弄清楚的当然是swf文件格式规范。规范中对swf文件格式作了详细的说明。关于swf文件头,它是由以下几个部分组成:
+-------+---+--------+--------+---+----+
|文件标识|版本|文件大小|RECT字段|帧频|帧数|
+-------+---+--------+--------+---+----+
其中“文件标识”为3个字节,包括文件压缩标志。这3个字节的内容为“FWS”或“CWS”,以‘C’开头的表示swf文件是采用的压缩输出(从RECT字段开始至文件结尾,采用Zlib标准进行文件压缩)。
“版本”为一个字节,存储8位字长的无符号整数,将swf文件的导出版本以16进制方式存储在该字节,如导出版本为7,则该字节存储值为0x07,而不是‘7’对应的ASCII值(0x37)。
“文件大小”存储占用4个字节,为32位无符号整数,将未压缩的swf文件大小以16进制形式存入该4个字段,值得注意的是,swf文件存储是按照 little-endian,即低字节在前的“小尾”方式存储的,解析时,需要注意字节序。如一个swf文件大小为471字节,则该4个字节,由低位到高 位,存储的内容将是0xd7,0x01,0x00,0x00。
“帧频”占用两个字节,表示每秒播放的帧数,存储方式是8.8共16位的定点数,整数部分在高位(即第二个字节),小数部分在低位(第一个字节),并按字 节对齐。如小数7.5表示为16进制是0x07.80,按照低位在前,高位在后表示,这16位将存储为如下的2进制代码10000000 00000111。
“帧数”占用两个字节,为16位无符号整数,表示swf文件的总帧数。存储方式类似于“文件大小”存储方式。
难理解的是RECT字段,该字段采用swf文件格式规范中定义的“位值”(bit_value)进行存储的,这种存储特征是可以节约字节数,但数值是跨字 节的。该段存储内容是用‘twip’(翻译为‘缇’,1pixel = 20twips)单位表示的播放窗口的尺寸。分为Nbits,表示后面字段的bit_value位长;Xmin,Xmax,Ymin,Ymax分别表示 X,Y轴方向上的最小和最大值。
先说一下bit_value,其特点是不管字节区分,按照最小位数(bits)将值连续存储,在末字节中空位补0,比如两个9位表示的无符号值7,8将占用3个字节,表示为2进制就是:
00000011 10000010 00000000
将3个字节按位连在一起,前9位值为7,再9位值为8,在第3个字节的其他空位全部补0。简单了解了bit_value表示方式,再说RECT结构,该字 段前5位(bit)为Nbits字段,表示后面字段的bit_value位长,是一个无符号数,也就是说最大值为为31,如此一来,整个RECT字段的最 大长度为17个字节,也就是说swf文件头最大不超过29个字节。通过Nbits字段得到后面字段的bit_value位长后,就可以确定RECT的具体 长度,继而得知“帧频”和“帧数”的存储位置。在RECT字段中,从第6位开始,存储的是播放窗口的尺寸数据,根据Nbits值,将后面的部分按位分开计 算,即可得到相应值。但对文件标识为“CWS”的swf文件,从“文件大小”字段后面开始(即从第8个字节后面开始),是按照Zlib标准压缩存储的,所 以,在解析swf文件头时,首先需判断swf文件是否按照压缩格式导出的。如果是以压缩格式导出的,则需先对头8个字节后面的内容进行解压缩处理了,再来 处理RECT字段和“帧频”和“帧数”字段。
下面给出我写的swf文件头解析类及实例压缩包的地址:
swfHeaderParser
另外,在国外的许多网站上可以找到相关的内容,这里提供两个有代表性的地址,有兴趣的朋友可以去看看。
关于用php解析swf文件头:
http://www.zend.com/codex.php?id=1382&single=1
关于用php生成swf文件:
http://freemovie.sourceforge.net/
相关日志
PHP服务器平台快速搭建程序....
近日,在CSDN论坛上 看到一个帖子,想要实现用PHP来得到swf文件帧数的功能,一些网友回复说不可能,其实是他们对swf文件格式不了解,swf文件格式规范是开放的,而 且也可以找到相当多的关于直接用PHP处理swf文件的,包括解析文件头,生成swf文件等。利用闲暇时间,我也写了一个粗陋的解析swf文件的类。
要想解析swf文件头,首先要弄清楚的当然是swf文件格式规范。规范中对swf文件格式作了详细的说明。关于swf文件头,它是由以下几个部分组成:
+-------+---+--------+--------+---+----+
|文件标识|版本|文件大小|RECT字段|帧频|帧数|
+-------+---+--------+--------+---+----+
其中“文件标识”为3个字节,包括文件压缩标志。这3个字节的内容为“FWS”或“CWS”,以‘C’开头的表示swf文件是采用的压缩输出(从RECT字段开始至文件结尾,采用Zlib标准进行文件压缩)。
“版本”为一个字节,存储8位字长的无符号整数,将swf文件的导出版本以16进制方式存储在该字节,如导出版本为7,则该字节存储值为0x07,而不是‘7’对应的ASCII值(0x37)。
“文件大小”存储占用4个字节,为32位无符号整数,将未压缩的swf文件大小以16进制形式存入该4个字段,值得注意的是,swf文件存储是按照 little-endian,即低字节在前的“小尾”方式存储的,解析时,需要注意字节序。如一个swf文件大小为471字节,则该4个字节,由低位到高 位,存储的内容将是0xd7,0x01,0x00,0x00。
“帧频”占用两个字节,表示每秒播放的帧数,存储方式是8.8共16位的定点数,整数部分在高位(即第二个字节),小数部分在低位(第一个字节),并按字 节对齐。如小数7.5表示为16进制是0x07.80,按照低位在前,高位在后表示,这16位将存储为如下的2进制代码10000000 00000111。
“帧数”占用两个字节,为16位无符号整数,表示swf文件的总帧数。存储方式类似于“文件大小”存储方式。
难理解的是RECT字段,该字段采用swf文件格式规范中定义的“位值”(bit_value)进行存储的,这种存储特征是可以节约字节数,但数值是跨字 节的。该段存储内容是用‘twip’(翻译为‘缇’,1pixel = 20twips)单位表示的播放窗口的尺寸。分为Nbits,表示后面字段的bit_value位长;Xmin,Xmax,Ymin,Ymax分别表示 X,Y轴方向上的最小和最大值。
先说一下bit_value,其特点是不管字节区分,按照最小位数(bits)将值连续存储,在末字节中空位补0,比如两个9位表示的无符号值7,8将占用3个字节,表示为2进制就是:
00000011 10000010 00000000
将3个字节按位连在一起,前9位值为7,再9位值为8,在第3个字节的其他空位全部补0。简单了解了bit_value表示方式,再说RECT结构,该字 段前5位(bit)为Nbits字段,表示后面字段的bit_value位长,是一个无符号数,也就是说最大值为为31,如此一来,整个RECT字段的最 大长度为17个字节,也就是说swf文件头最大不超过29个字节。通过Nbits字段得到后面字段的bit_value位长后,就可以确定RECT的具体 长度,继而得知“帧频”和“帧数”的存储位置。在RECT字段中,从第6位开始,存储的是播放窗口的尺寸数据,根据Nbits值,将后面的部分按位分开计 算,即可得到相应值。但对文件标识为“CWS”的swf文件,从“文件大小”字段后面开始(即从第8个字节后面开始),是按照Zlib标准压缩存储的,所 以,在解析swf文件头时,首先需判断swf文件是否按照压缩格式导出的。如果是以压缩格式导出的,则需先对头8个字节后面的内容进行解压缩处理了,再来 处理RECT字段和“帧频”和“帧数”字段。
下面给出我写的swf文件头解析类及实例压缩包的地址:
swfHeaderParser
另外,在国外的许多网站上可以找到相关的内容,这里提供两个有代表性的地址,有兴趣的朋友可以去看看。
关于用php解析swf文件头:
http://www.zend.com/codex.php?id=1382&single=1
关于用php生成swf文件:
http://freemovie.sourceforge.net/
相关日志
PHP服务器平台快速搭建程序....
发表评论
-
swf文件压缩
2011-12-01 18:29 1342from http://www.9ria.com/news/2 ... -
swf文件的数据结构以及转为exe或从exe中剥离出swf的代码
2011-11-14 22:11 2119swf文件的数据结构以及转为exe或从exe中剥离出swf的源 ... -
swf的详细介绍
2011-11-14 21:17 1231介绍链接一 http://as3.iteye.com/blog ... -
三个重要的处理swf的开源软件
2011-11-14 18:33 1313抓紧时间研究jswiff,swfmill,swfml jsw ... -
IText中文处理问题!!!
2011-11-08 16:19 1164引用2008年06月05日 星期四 下午 10:29这里说的I ... -
FlexBook
2011-05-06 13:12 1552FlexBook from [url ... -
[2011-04] Flex里自定义进度条ProgressBar样式皮肤
2011-04-20 15:47 26222011-01-29 11:08trackbar是整个的条 ... -
[2011-04] flex弹出模式窗口
2011-04-19 17:25 16161、创建一个component,继承自 TitleWindow ... -
[2011-04] Flex调用C# Webservice
2011-04-19 14:19 1146关键字: flex数据交互 终于试出flex用WebSer ... -
[2011-04-19]Flex程序实现背景贴图的两种方式
2011-04-19 10:33 1267Flex程序实现背景贴图的两种方式 Two ways to i ... -
Flex Component Kit for Flash CS3 安装方法及前提
2011-04-15 10:22 1282from http://kingapex.iteye.com/ ... -
as3 flash web 应用 (6)swfobject的使用:将flash嵌入页面
2011-04-14 10:27 2447from http://hi.baidu.com/yukon_ ... -
pdftk 为偶数页加水印
2011-03-23 17:27 2248引用查看完整版本 : 找 ... -
借助 unoconv 批量转 xls 到 pdf文件
2011-03-23 14:44 3313文章分类:Web前端 因为 ... -
swftools安装
2011-03-09 08:44 1462安装swftools工具时,在windows平台下是很简单的事 ... -
flex3下使用全屏模式
2011-03-03 10:12 983引用flex3下使用全屏模式 MXML: -------- ... -
Flex生成SDK下Local目录下的语言包
2011-02-25 16:44 1652from http://sensaran.wordpress. ... -
swf文件格式解析入门(tag解析)
2011-02-24 15:24 2844收藏 swf文件格式解析入门(tag解析) 2010 ... -
转成swf文件注意事项
2011-02-21 10:23 8861\ 这里同时给大家提供一个建议就是,对于纯位图的资源文 ... -
AS获取SWF文件的宽和高!(实现如下类)
2011-02-17 17:57 1436主页博客相册|个人档案 ...
相关推荐
总的来说,PHP解析SWF文件头信息的能力是一个实用的技术点,尤其对于处理与Flash相关的Web内容时。通过对`swfheader.class.php`和`swfheadertest1.php`进行学习和研究,我们可以深入理解SWF文件格式,并提升在处理...
SWF文件,全称Small Web Format,是一种由Adobe Flash创建的多媒体文件格式,常用于网页上的动画、游戏或交互式应用程序。本主题聚焦于SWF文件的上传与下载,这在Web开发中是两个关键的操作。 一、SWF文件上传 1. ...
在PHP中,要读取Flash(SWF)文件的高宽、帧数和背景颜色等信息,可以使用自定义类来解析SWF文件的二进制数据。以下是一个实例,展示了如何实现这一功能: 首先,我们需要创建一个名为`flash`的类,这个类将包含...
如果你还想着通过解析swf文件头信息来获取flash文件的尺寸信息,那真的有点走远了,因为从PHP 4开始已经内置getimagesize函数来做这个事,其功能测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM ...
在“php+flash 图片上传源代码”中,Flash部分可能包含一个ActionScript编写的SWF文件,它使用FileReference对象监听用户的文件选择事件,当用户选择图片后,会触发upload()方法,将图片文件以二进制数据的形式发送...
并修改com\comsenz\camera\v4\model\vo\Params.as的第9行_baseURL属性的值为Web端的URL地址,并保存按Ctrl+Enter导出并运行camera.swf文件,即可上传头像与调试啦。 4.类库下载地址: TweenLite10.092 ...
- `face.swf`:SWF文件是Adobe Flash的格式,可能是一个旧版的头像裁剪工具,使用Flash技术实现。 - `使用前请看下.txt`:这是一个文本文件,很可能包含了使用组件前需要注意的事项或指南。 5. **前端技术**:...
1. Flash源文件(.fla或.swf):这是Flash动画的原始文件,包含了所有图形、动画和交互逻辑。用户可以通过Flash编辑器打开并查看或修改源代码。 2. PHP脚本:可能包括处理上传、保存和下载头像的PHP文件,以及与...
4. **相关文件解析**: - `index.html`:这是主网页,包含Flash对象和相关JavaScript代码,用于与Flash组件通信。 - `Image.class.php`:可能是一个PHP类,封装了图像处理的逻辑,如读取、处理和保存图片。 - `...
从PHP 4开始,此函数被扩展以支持Flash文件,这意味着你可以直接获取Flash文件的宽度和高度,而无需解析SWF文件头信息。例如: ```php print_r(getimagesize('path/to/yourfile.swf')); ``` 此功能极大地简化了与...
本文将深入探讨如何实现Discuz头像上传功能,并解析与之相关的文件及其作用。 首先,我们来看一下提供的压缩包文件: 1. **noavatar_big.gif、noavatar_middle.gif、noavatar_small.gif**:这些文件是默认无头像的...
这通常涉及服务器端语言如PHP、Java或ASP.NET等,它们接收文件流,保存图片,同时处理Flash发送的裁剪信息,生成裁剪后的图片。服务器端的安全性也非常重要,防止非法文件上传和数据泄露。 7. **前端与后端通信**:...
//swf文件路径 swf:'uploader.swf', //文件接收服务端。 server:upload.php, //选择文件的按钮。可选。 //内部根据当前运行是创建,可能是input元素,也可能是flash. pick:'#picker', chunked:true, chunk...
- `face.swf`:这是一个Flash文件,可能用于在不支持HTML5文件上传的旧浏览器中提供上传功能。Flash允许在用户界面中选择文件,然后通过Flash的API与服务器通信,上传选定的文件。 6. **业务逻辑修改**: - 根据...
文件上传允许用户将本地文件发送到服务器,这在各种场景下都非常有用,比如用户上传头像、提交作业或者分享大文件。本篇文章将深入探讨Java中的文件上传机制,以及如何利用SWFUpload和ExtJS这两个流行的前端库来实现...
location ~* \.(jpg|jpeg|png|gif|swf)$ { valid_referers none blocked $http_referer; if ($invalid_referer) { return 403; } } ``` ### 代理服务 #### 正向代理 - **原理**:客户端通过代理服务器向目标...
4. **服务器端接收**:在PHP端,你需要更新接收文件的脚本,以正确解析`multipart/form-data`格式的数据。使用`$_FILES`全局数组获取上传文件的信息,如文件名、大小、类型等,并确保上传过程的安全性,例如检查文件...