<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[php 文件原生上传函数]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Wed, 14 Mar 2018 01:29:10 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	php 文件原生上传函数<br/><div class="code"><br/>//文件上传函数<br/>&nbsp;&nbsp;/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;*文件上传函数<br/>&nbsp;&nbsp;&nbsp;&nbsp;*@param array&nbsp;&nbsp;$upfile&nbsp;&nbsp;被上传的文件信息 例如:$_FILES&#91;&#039;myfile&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;*@param string $path&nbsp;&nbsp;&nbsp;&nbsp;文件上传路径<br/>&nbsp;&nbsp;&nbsp;&nbsp;*@param array&nbsp;&nbsp;$typelist 允许文件上传的类型 默认空数组 表示不限<br/>&nbsp;&nbsp;&nbsp;&nbsp;*@param int&nbsp;&nbsp;&nbsp;&nbsp; $maxsize&nbsp;&nbsp;允许上传的大小限制 默认0 表示不限<br/>&nbsp;&nbsp;&nbsp;&nbsp;*@return&nbsp;&nbsp;array&nbsp;&nbsp;返回两个关联数组<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中下标为error的值如果为true表示上传成功，false 表示失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info下标 表示错误信息或者是文件名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;*/<br/>&nbsp;&nbsp;function fileUpload($upfile,$path,$typelist=array(),$maxsize=0)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//初始化信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;$path=rtrim($path,&quot;/&quot;).&quot;/&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//定义一个返回结果<br/>&nbsp;&nbsp;&nbsp;&nbsp;$res=&#91;&#039;error&#039;=&gt;false,&#039;info&#039;=&gt;&#039;&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//2.判断文件上传错误号<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($upfile&#91;&#039;error&#039;&#93;&gt;0)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch($upfile&#91;&#039;error&#039;&#93;)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 1:$error=&quot;上传的文件超过了 php.ini 中限制大小&quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 2:$error=&quot;上传文件的大小超过了 HTML 表单中限制的大小&quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 3:$error=&quot;文件只有部分被上传。&quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 4:$error=&quot;没有文件被上传。 &quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 6:$error=&quot;找不到临时文件夹。&quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case 7:$error=&quot;文件写入失败&quot;; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:$error=&quot;未知错误&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=$error;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $res;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//3.判断过滤文件的类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(count($typelist)&gt;0)&#123;//你是否限制<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断类型是否是typelist中的类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!in_array($upfile&#91;&#039;type&#039;&#93;,$typelist))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=&quot;文件类型不符&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $res;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//4.文件上传大小是否满足<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //上传文件大小&nbsp;&nbsp; 限制大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($maxsize&gt;0 &amp;&amp; $upfile&#91;&#039;size&#039;&#93;&gt;$maxsize)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=&quot;文件上传失败，原因：文件大小超出范围！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $res;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//5.随机文件名<br/>&nbsp;&nbsp;&nbsp;&nbsp;$hz=pathinfo($upfile&#91;&#039;name&#039;&#93;,PATHINFO_EXTENSION);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//var_dump($hz);<br/>&nbsp;&nbsp;&nbsp;&nbsp;do&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$newfile=date(&quot;YmdHis&quot;).rand(1000,9999).&quot;.&quot;.$hz;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;while(file_exists($path.$newfile));//判断文件是否存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//echo $newfile;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//6.判断并执行上传<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(is_uploaded_file($upfile&#91;&#039;tmp_name&#039;&#93;))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(move_uploaded_file($upfile&#91;&#039;tmp_name&#039;&#93;,$path.$newfile))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=$newfile;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;error&#039;&#93;=true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=&quot;文件上传错误！原因是：文件移动失败&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&#91;&#039;info&#039;&#93;=&quot;不是有效的上传文件&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return $res;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/></div>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] php 文件原生上传函数]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>