<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[Web上传文件前判断文件的大小]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 14 Oct 2009 03:22:04 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;通常情况下，我们利用浏览器来上传文件的时候，常常会限制文件的大小，例如上传图片，自定义头像这些东东，如果让文件数据上传到服务器端，再来判断文件的大小提示用户文件过大，这里会有一些网络的延迟，更重要的是浪费了带宽，今天在研究这个问题的时候，找到了在本地利用javascript来判断文件大小，从而带来了很好的客户端体验，又节约了相当大的带宽，以下是代码片段：<br/>&nbsp;&nbsp; HTML表单代码片段：<br/><br/>&nbsp;&nbsp;代码 <br/><div class="code">&lt;form id=&quot;uploadfile&quot; name=&quot;uploadfile&quot; class=&quot;&quot; target=&quot;upload&quot; action=&quot;http://web.qq.com/cgi-bin/cface_upload&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input id=&quot;custom_face&quot; name=&quot;custom_face&quot; type=&quot;file&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;f&quot; type=&quot;hidden&quot; value=&quot;fallback&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;go&quot; type=&quot;button&quot; value=&quot;Upload File&quot; onclick=&quot;Upload();&quot;&gt;<br/>&lt;/form&gt;<br/><br/>&nbsp;&nbsp;javascript代码片段：<br/><br/>&nbsp;&nbsp;function Upload()<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var form=document.getElementById(&quot;uploadfile&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var face=document.getElementById(&quot;custom_face&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//ReadFFFile(face);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var fileSize=GetFileSize(face);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(fileSize&gt;1024*1024)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(&quot;文件不能大于1M&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.submit();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;;<br/>&#125;;<br/>function GetFileSize(fileObj)　　<br/>&#123;　　<br/>　&nbsp;&nbsp;var image=new Image();<br/>&nbsp;&nbsp;&nbsp;&nbsp;var filePath=fileObj.value;<br/>　&nbsp;&nbsp;image.dynsrc=filePath;<br/>　&nbsp;&nbsp;var fileSize=image.fileSize&#124;&#124;0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(fileSize==0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileSize=fileObj.files&#91;0&#93;.fileSize;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return fileSize;<br/>&#125;;</div><br/>这里对IE6和Firefox3分别用了image标签的synsrc属性和files数组，从而解决了浏览器获取待上传文件大小的这个问题。在firefox3中，files这个数组的项还有另外一个方法getAsBinary方法，可以获取该文件的二进制流，这样可以对文件进行Hash计算，在一起需要上传需要Hash作为文件名的场合下也是非常有用的，IE6下需要用到ActiveX控件ADO（浏览器自带）也能获取二进制流，不过这里可能会被浏览器的安全设置截获到而无法正常使用。<br/>
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Web上传文件前判断文件的大小]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>