<?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类(CLASS)]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[代码编程]]></category>
<pubDate>Tue, 03 Oct 2006 00:28:17 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	<div class="code"><br/>&lt;?<br/>class php_upload_class&#123;<br/><br/> &nbsp; &nbsp; &nbsp;var $FormName &nbsp; &nbsp; &nbsp; = &#039;file&#039;; //文件域名称<br/> &nbsp; &nbsp; &nbsp;var $Directroy &nbsp; &nbsp; &nbsp;= &#039;./&#039;; //上传至目录<br/> &nbsp; &nbsp; &nbsp;var $MaxSize &nbsp; &nbsp; &nbsp; &nbsp;= 2097152; //最大上传大小 <br/> &nbsp; &nbsp; &nbsp;var $CanUpload &nbsp; &nbsp; &nbsp;= true; //是否可以上传<br/> &nbsp; &nbsp; &nbsp;var $doUpFile &nbsp; &nbsp; &nbsp; = &#039;&#039;; //上传的文件名<br/> &nbsp; &nbsp; &nbsp;var $Error &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 0; &nbsp;//错误参数<br/> &nbsp; &nbsp; &nbsp;var $user_post_file = array(); &nbsp;//用户上传的文件<br/> &nbsp; &nbsp; &nbsp;var $allow_type &nbsp; &nbsp; = array(&#039;gif&#039;, &#039;jpg&#039;, &#039;png&#039;, &#039;bmp&#039;,&#039;txt&#039;,&#039;rar&#039;,&#039;zip&#039;,&#039;doc&#039;, &#039;pdf&#039;);<br/> &nbsp; &nbsp; &nbsp;var $save_info &nbsp; &nbsp; &nbsp;= array(); //返回一组有用信息，用于提示用户。<br/> &nbsp; &nbsp; &nbsp;var $last_error &nbsp; &nbsp; = &#039;&#039;;<br/> &nbsp; &nbsp;var $mutiple_up_res = &#039;&#039;;<br/> &nbsp; &nbsp;var $img_prefix &nbsp; &nbsp; = &#039;p_&#039;;//重命名图片前缀<br/> &nbsp; &nbsp;var $is_same_name &nbsp; = false; //是否将上传的文件重新名称，默认重名称<br/> &nbsp; &nbsp;var $custom_dir &nbsp; &nbsp; = &#039;&#039;; //自定义图片名称<br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp;var $to_remote &nbsp; &nbsp; &nbsp;= false; //是否将上传的图片传到远程服务器<br/> &nbsp; &nbsp;var $host; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //远程主机<br/> &nbsp; &nbsp;var $user; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //用户名<br/> &nbsp; &nbsp;var $pw; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //密码<br/> &nbsp; &nbsp;var $root_dir; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//远程路径<br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp;var $is_zoom &nbsp; &nbsp; &nbsp; &nbsp;= false; //是否将上传的图片文件生成缩略图,默认不缩放<br/> &nbsp; &nbsp; &nbsp;var $sm_File &nbsp; &nbsp; &nbsp; &nbsp;= &#039;&#039;; //缩略图名称<br/> &nbsp; &nbsp; &nbsp;var $dscChar &nbsp; &nbsp; &nbsp; &nbsp;= &#039;sm_&#039;;//缩略图名称前缀<br/> &nbsp; &nbsp;var $width &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 150;//缩略图宽度<br/> &nbsp; &nbsp;var $height &nbsp; &nbsp; &nbsp; &nbsp; = 113;//缩略图高度<br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp;var $is_watermark &nbsp; = false; //是否将上传的图片文件打水印，默认不打水印<br/> &nbsp; &nbsp;var $quality &nbsp; &nbsp; &nbsp; &nbsp;= 90; //0-100 生成图片质量<br/> &nbsp; &nbsp; var $errorMsg &nbsp; &nbsp; &nbsp; = false; //水印处理错误<br/> &nbsp; &nbsp;var $waterPos &nbsp; &nbsp; &nbsp; = 0; //水印起始位置<br/> &nbsp; &nbsp;var $waterImage &nbsp; &nbsp; = &quot;&quot;; //水印图片路径<br/> &nbsp; &nbsp;var $waterText &nbsp; &nbsp; &nbsp;= &quot;&quot;; //水印文字<br/> &nbsp; &nbsp;var $textFont &nbsp; &nbsp; &nbsp; = 5; //水印文字大小<br/> &nbsp; &nbsp;var $textColor &nbsp; &nbsp; &nbsp;= &quot;#FF0000&quot;; //水印文字颜色<br/><br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp;function php_upload_class($ini_array=array())&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;user_post_file &nbsp; = $ini_array&#91;&#039;user_post_file&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;allow_type &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;allow_type&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;is_same_name &nbsp; &nbsp; = $ini_array&#91;&#039;is_same_name&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;to_remote &nbsp; &nbsp; &nbsp; &nbsp;= $ini_array&#91;&#039;to_remote&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;host&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;user &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;user&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;pw &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;pw&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;root_dir &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;root_dir&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;is_zoom &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= $ini_array&#91;&#039;is_zoom&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;is_watermark &nbsp; &nbsp; = $ini_array&#91;&#039;is_watermark&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;waterPos &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;waterPos&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;waterImage &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;waterImage&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;waterText &nbsp; &nbsp; &nbsp; &nbsp;= $ini_array&#91;&#039;waterText&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;textFont &nbsp; &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;textFont&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;textColor &nbsp; &nbsp; &nbsp; &nbsp;= $ini_array&#91;&#039;textColor&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp;&#125; <br/> <br/> &nbsp; &nbsp; /*上传单个文件*/<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp;function upload_single_file($fileName = &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;CanUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;size&#039;&#93; == 0)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;Error = 3;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;CanUpload = false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $this-&gt;Error;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;CanUpload)&#123;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($fileName == &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$fileName = $_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;name&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;doUpload=@copy($_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;tmp_name&#039;&#93;, $this-&gt;Directroy.$fileName);<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($this-&gt;doUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;doUpFile = $fileName;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;chmod($this-&gt;Directroy.$fileName, 0777);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;Error = 4;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;Error;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //是否创建图片缩略图<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;is_zoom)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$imgInfo = @getimagesize($final_file_path);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$srcWidth = $imgInfo&#91;0&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$srcHeight = $imgInfo&#91;1&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($srcWidth&gt;$srcHeight)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;height = $srcHeight*$this-&gt;width/$srcWidth;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;elseif($srcWidth&lt;$srcHeight)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;width = $srcWidth*$this-&gt;height/$srcHeight;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;thumb($this-&gt;dscChar,$this-&gt;width,$this-&gt;height);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; //是否给图片加水印<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;is_watermark)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;imageWaterMark($fileName,$this-&gt;waterPos,$this-&gt;waterImage,$this-&gt;waterText,$this-&gt;textFont,$this-&gt;textColor);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;/*上传发生错误*/<br/> &nbsp; &nbsp;function parse_upload_error($last_error=0)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch($last_error)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &quot;1&quot;:$last_error = &quot;&lt;li&gt;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。&lt;/li&gt;&quot;;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &quot;2&quot;:$last_error = &quot;&lt;li&gt;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。&lt;/li&gt;&quot;;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &quot;3&quot;:$last_error = &quot;&lt;li&gt;文件只有部分被上传。&lt;/li&gt;&quot;;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &quot;4&quot;:$last_error = &quot;&lt;li&gt;没有文件被上传。&lt;/li&gt;&quot;;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;default: $last_error = &quot;&quot;;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $last_error;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;/* 上传多个文件 &nbsp;*/<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp;function upload_mutiple_file() &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;to_remote)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; require(&quot;php_ftp_class.php&quot;);<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ini_array = array();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ini_array&#91;&#039;host&#039;&#93; &nbsp; &nbsp; = $this-&gt;host;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ini_array&#91;&#039;user&#039;&#93; &nbsp; &nbsp; = $this-&gt;user;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ini_array&#91;&#039;pw&#039;&#93; &nbsp; &nbsp; &nbsp; = $this-&gt;pw;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ini_array&#91;&#039;root_dir&#039;&#93; = $this-&gt;root_dir;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ftp = new php_ftp_class($ini_array);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ftp-&gt;connect();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ($i = 0; $i &lt; count($this-&gt;user_post_file&#91;&#039;name&#039;&#93;); $i++) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;user_post_file&#91;&#039;error&#039;&#93;&#91;$i&#93; == 0) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$name &nbsp; &nbsp; &nbsp;= $this-&gt;user_post_file&#91;&#039;name&#039;&#93;&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$tmpname &nbsp; = $this-&gt;user_post_file&#91;&#039;tmp_name&#039;&#93;&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$size &nbsp; &nbsp; &nbsp;= $this-&gt;user_post_file&#91;&#039;size&#039;&#93;&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$mime_type = $this-&gt;user_post_file&#91;&#039;type&#039;&#93;&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$type &nbsp; &nbsp; &nbsp;= $this-&gt;getExt($this-&gt;user_post_file&#91;&#039;name&#039;&#93;&#91;$i&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!$this-&gt;checkSize($size)) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= &quot;&lt;li&gt;允许上传的文件最大值为:&lt;b&gt;&quot;.$this-&gt;get_real_size($this-&gt;MaxSize).&quot;&lt;/b&gt;,文件 &lt;b&gt;&quot;.$name.&quot;&lt;/b&gt; 的大小为 &lt;b&gt;&quot;.$this-&gt;get_real_size($size).&quot;&lt;/b&gt; ,上传失败。&lt;br&gt;&#92;n&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (!$this-&gt;checkType($type)) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= &quot;&lt;li&gt;&lt;b&gt;&quot;.$type.&quot;&lt;/b&gt; 类型的文件不允许上传，&lt;b&gt;&quot;.$name.&quot;&lt;/b&gt; 属于该类型,上传失败&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@is_uploaded_file($tmpname)) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= &quot;&lt;li&gt;警告：文件 &lt;b&gt;&quot;.$name.&quot;&lt;/b&gt;通过非正常渠道上传,上传失败。&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $basename = $this-&gt;getBaseName($name, &quot;.&quot;.$type);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $saveas = $this-&gt;img_prefix.date(&quot;YmdHis&quot;).&quot;.&quot;.$type;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //是否重命名上传文件<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $saveas = $this-&gt;is_same_name ? $saveas : $name;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //自定义图片名称<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $custom_dir = $this-&gt;custom_dir.&quot;/&quot;.date(&quot;YmdHis&quot;).&quot;-&quot;.$this-&gt;get6random();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $pathinfo = pathinfo($custom_dir);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($pathinfo&#91;&#039;dirname&#039;&#93;!=&quot;.&quot;)&#123;//自定义名称带有目录<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $pathinfo&#91;&#039;dirname&#039;&#93; = (strpos($pathinfo&#91;&#039;dirname&#039;&#93;,&quot;/&quot;)==0) ? substr($pathinfo&#91;&#039;dirname&#039;&#93;,1,strlen($pathinfo&#91;&#039;dirname&#039;&#93;)) : $pathinfo&#91;&#039;dirname&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $pathinfo&#91;&#039;dirname&#039;&#93; = str_replace(&quot;//&quot;,&quot;/&quot;,$pathinfo&#91;&#039;dirname&#039;&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dirs = explode(&quot;/&quot;,$pathinfo&#91;&#039;dirname&#039;&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dirname = false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($i==0)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach($dirs as $dir)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dirname .= $dir.&quot;/&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ftp-&gt;mk_dir($dirname,true);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ftp-&gt;root_dir = $ini_array&#91;&#039;root_dir&#039;&#93;.&quot;/&quot;.$pathinfo&#91;&#039;dirname&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $saveas = $this-&gt;custom_dir ? $custom_dir.&quot;.&quot;.$type : $saveas;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $final_file_path = $this-&gt;Directroy.&quot;/&quot;.$saveas; //本地目录<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//是否创建图片缩略图<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($this-&gt;is_zoom)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;CanUpload = true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;doUpFile &nbsp;= $tmpname;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;thumb($tmpname,basename($saveas),$this-&gt;dscChar,$this-&gt;width,$this-&gt;height);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//上传缩略图到远程服务器<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($this-&gt;to_remote)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ftp-&gt;ftp_put($this-&gt;dscChar.$this-&gt;sm_File,$this-&gt;sm_File);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!@move_uploaded_file($tmpname, $final_file_path)) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;last_error .= $this-&gt;parse_upload_error($this-&gt;user_post_file&#91;&#039;error&#039;&#93;&#91;$i&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@unlink($this-&gt;sm_File);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//是否给图片加水印<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($this-&gt;is_watermark)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;imageWaterMark($tmpname,$this-&gt;waterPos,$this-&gt;waterImage,$this-&gt;waterText,$this-&gt;textFont,$this-&gt;textColor);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//上传图片到服务器<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;to_remote)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ftp-&gt;ftp_put(basename($saveas),$tmpname);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($ftp-&gt;error())&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= $ftp-&gt;error(); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@move_uploaded_file($tmpname, $final_file_path)) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= $this-&gt;parse_upload_error($this-&gt;user_post_file&#91;&#039;error&#039;&#93;&#91;$i&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//存储当前文件的有关信息，以便其它程序调用。<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;save_info&#91;&#93; = &nbsp;array(&quot;name&quot; &nbsp; &nbsp; &nbsp;=&gt; $name, <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;type&quot; &nbsp; &nbsp; &nbsp;=&gt; $type,<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;mime_type&quot; =&gt; $mime_type,<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;size&quot; &nbsp; &nbsp; &nbsp;=&gt; $size, <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;saveas&quot; &nbsp; &nbsp;=&gt; $saveas,<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;path&quot; &nbsp; &nbsp; &nbsp;=&gt; $final_file_path<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;to_remote)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ftp-&gt;close();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;mutiple_up_res &nbsp;= &#039;&lt;ul&gt;上传结果：&lt;br&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;mutiple_up_res .= &#039;有 &lt;font color=green&gt;&lt;b&gt;&#039;.count($this-&gt;save_info).&#039;&lt;/b&gt;&lt;/font&gt; 个文件被成功上传。&lt;br&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;last_error)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// $this-&gt;mutiple_up_res .= &#039;有 &lt;font color=red&gt;&lt;b&gt;&#039;.(count($this-&gt;user_post_file)-count($this-&gt;save_info)).&#039;&lt;/b&gt;&lt;/font&gt; 个文件上传失败。&lt;br&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;mutiple_up_res .= &#039;上传失败，详细如下：&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;mutiple_up_res .= $this-&gt;last_error;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;mutiple_up_res .= &#039;&lt;/ul&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $this-&gt;mutiple_up_res; //返回上传结果信息<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> <br/> &nbsp; &nbsp; &nbsp;/*创建图片缩略图 */<br/><br/> &nbsp; &nbsp; &nbsp;function thumb($srcFile,$dscFile,$dscChar=&#039;&#039;,$width=150,$height=113)&#123;<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;CanUpload &amp;&amp; $this-&gt;doUpFile != &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$srcFile = $srcFile ? $srcFile : $this-&gt;doUpFile;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($dscChar == &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dscChar = &#039;sm_&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dscFile = $dscFile ? $dscFile : $this-&gt;Directroy.&quot;/&quot;.$dscChar.$srcFile;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$data &nbsp; &nbsp;= getimagesize($srcFile);<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch ($data&#91;2&#93;) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$im = @imagecreatefromgif($srcFile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$im = @imagecreatefromjpeg($srcFile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $im = @imagecreatefrompng($srcFile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $srcWidth &nbsp;= $data&#91;0&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; $srcHeight = $data&#91;1&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; if($srcWidth&gt;$srcHeight)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$width &nbsp;= $this-&gt;width;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$height = $srcHeight*$this-&gt;width/$srcWidth;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;elseif($srcWidth&lt;$srcHeight)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$width &nbsp;= $srcWidth*$this-&gt;height/$srcHeight;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$height = $this-&gt;height;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$width &nbsp;= $this-&gt;height;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$height = $this-&gt;height;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $srcW=imagesx($im);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $srcH=imagesy($im);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ni=imagecreatetruecolor($width,$height);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagecopyresized($ni,$im,0,0,0,0,$width,$height,$srcW,$srcH);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cr = imagejpeg($ni,$dscFile,$this-&gt;quality);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @chmod($dscFile, 0777);<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; if($cr)&#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;sm_File = $dscFile;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;last_error .= &quot;&lt;li&gt;不能生成&lt;b&gt;&amp;quot;&quot;.$dscFile.&quot;&amp;quot;&lt;/b&gt;的缩略图&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;/* 功能：PHP图片水印 (水印支持图片或文字) <br/> &nbsp; &nbsp; &nbsp;* 参数： <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$groundImage &nbsp; &nbsp;背景图片，即需要加水印的图片，暂只支持GIF,JPG,PNG格式； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$waterPos &nbsp; &nbsp; &nbsp; &nbsp;水印位置，有10种状态，0为随机位置； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1为顶端居左，2为顶端居中，3为顶端居右； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4为中部居左，5为中部居中，6为中部居右； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7为底端居左，8为底端居中，9为底端居右； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$waterImage &nbsp; &nbsp; &nbsp; &nbsp;图片水印，即作为水印的图片，暂只支持GIF,JPG,PNG格式； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$waterText &nbsp; &nbsp; &nbsp; &nbsp;文字水印，即把文字作为为水印，支持ASCII码，不支持中文； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$textFont &nbsp; &nbsp; &nbsp; &nbsp;文字大小，值为1、2、3、4或5，默认为5； <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$textColor &nbsp; &nbsp; &nbsp; &nbsp;文字颜色，值为十六进制颜色值，默认为#FF0000(红色)； <br/> &nbsp; &nbsp; &nbsp;* <br/> &nbsp; &nbsp; &nbsp;* 注意：Support GD 2.0，Support FreeType、GIF Read、GIF Create、JPG 、PNG <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;$waterImage 和 $waterText 最好不要同时使用，选其中之一即可，优先使用 $waterImage。 <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;当$waterImage有效时，参数$waterString、$stringFont、$stringColor均不生效。 <br/> &nbsp; &nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;加水印后的图片的文件名和 $groundImage 一样。 <br/> &nbsp; &nbsp; &nbsp;* 作者：longware @ 2004-11-3 14:15:13 我修改的<br/> &nbsp; &nbsp; &nbsp;*/ <br/> &nbsp; &nbsp; &nbsp;function imageWaterMark($groundImage,$waterPos=0,$waterImage,$waterText,$textFont=5,$textColor=&quot;#FF0000&quot;)&#123; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $isWaterImage = FALSE; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $formatMsg = &quot;警告：暂不支持该文件格式，请用图片处理软件将图片转换为GIF、JPG、PNG格式。&quot;; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //读取水印文件 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!empty($waterImage)) &#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $isWaterImage = TRUE; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $water_info &nbsp; = @getimagesize($waterImage); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $water_w &nbsp; &nbsp; &nbsp;= $water_info&#91;0&#93;;//取得水印图片的宽 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $water_h &nbsp; &nbsp; &nbsp;= $water_info&#91;1&#93;;//取得水印图片的高 <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch($water_info&#91;2&#93;)&#123; //取得水印图片的格式 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:$water_im = @imagecreatefromgif($waterImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:$water_im = @imagecreatefromjpeg($waterImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3:$water_im = @imagecreatefrompng($waterImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; default:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errormsg = $formatMsg;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; die(&quot;&quot;); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //读取背景图片 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($groundImage) &#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ground_info = getimagesize($groundImage); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ground_w &nbsp; &nbsp;= $ground_info&#91;0&#93;;//取得背景图片的宽 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ground_h &nbsp; &nbsp;= $ground_info&#91;1&#93;;//取得背景图片的高 <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch($ground_info&#91;2&#93;)&#123;//取得背景图片的格式 &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:$ground_im = imagecreatefromgif($groundImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:$ground_im = imagecreatefromjpeg($groundImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3:$ground_im = imagecreatefrompng($groundImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; default:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errorMsg = $formatMsg;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; die(&quot;&quot;); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errorMsg = &quot;需要加水印的图片不存在！&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; die(&quot;&quot;); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //水印位置 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($isWaterImage)&#123;//图片水印 &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $w = $water_w; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $h = $water_h; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $label = &quot;图片的&quot;; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123; //文字水印 &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $temp = imagettfbbox(ceil($textFont*2.5),0,&quot;./ARIAL.TTF&quot;,$waterText);//取得使用 TrueType 字体的文本的范围 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $w = $temp&#91;2&#93; - $temp&#91;6&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $h = $temp&#91;3&#93; - $temp&#91;7&#93;; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset($temp); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $label = &quot;文字区域&quot;; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( ($ground_w&lt;$w) &#124;&#124; ($ground_h&lt;$h) )&#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errorMsg = &quot;需要加水印的图片的长度或宽度比水印&quot;.$label.&quot;还小，无法生成水印！&quot;; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch($waterPos) &#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 0://随机 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = rand(0,($ground_w - $w)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = rand(0,($ground_h - $h)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1://1为顶端居左 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2://2为顶端居中 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = ($ground_w - $w) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3://3为顶端居右 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = $ground_w - $w; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 4://4为中部居左 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = ($ground_h - $h) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 5://5为中部居中 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = ($ground_w - $w) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = ($ground_h - $h) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 6://6为中部居右 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = $ground_w - $w; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = ($ground_h - $h) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 7://7为底端居左 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = 0; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $posY = $ground_h - $h; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 8://8为底端居中 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = ($ground_w - $w) / 2; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = $ground_h - $h; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 9://9为底端居右 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = $ground_w - $w; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = $ground_h - $h; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 10://自定义<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = 160; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = 265; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; default://随机<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posX = rand(0,($ground_w - $w)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$posY = rand(0,($ground_h - $h)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //设定图像的混色模式 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagealphablending($ground_im, true); <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($isWaterImage)&#123; //图片水印 &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件 &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;//文字水印 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( !empty($textColor) &amp;&amp; (strlen($textColor)==7) )&#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $R = hexdec(substr($textColor,1,2)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $G = hexdec(substr($textColor,3,2)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $B = hexdec(substr($textColor,5)); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errorMsg = &quot;水印文字颜色格式不正确！&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; die(&quot;&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B)); &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //生成水印后的图片 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @unlink($groundImage); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch($ground_info&#91;2&#93;)&#123; //取得背景图片的格式 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:imagegif($ground_im,$groundImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:imagejpeg($ground_im,$groundImage,$this-&gt;quality);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3:imagepng($ground_im,$groundImage);break; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; default:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;errorMsg = &#039;不支持该类型背景图片&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; die(&quot;&quot;); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125; <br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //释放内存 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(isset($water_info)) unset($water_info); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(isset($water_im)) imagedestroy($water_im); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset($ground_info); <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; imagedestroy($ground_im); <br/> &nbsp; &nbsp; &nbsp;&#125; <br/> &nbsp; &nbsp; &nbsp;//检查文件是否存在<br/> &nbsp; &nbsp; &nbsp;function scanFile()<br/> &nbsp; &nbsp; &nbsp;&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;CanUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$scan = is_readable($_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;name&#039;&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($scan)&#123; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;Error = 2;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $scan;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> <br/> &nbsp; &nbsp; &nbsp;//获取文件大小<br/> &nbsp; &nbsp; &nbsp;function getSize($format = &#039;B&#039;)<br/> &nbsp; &nbsp; &nbsp;&#123;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;CanUpload)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &#123;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;size&#039;&#93; == 0)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;Error = 3;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;CanUpload = false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch ($format)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &#039;B&#039;:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;size&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &#039;M&#039;:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return ($_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;size&#039;&#93;)/(1024*1024);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; //转换大小<br/> &nbsp; &nbsp; &nbsp; function get_real_size($size) &#123;<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$kb = 1024; &nbsp; &nbsp; &nbsp; &nbsp; // Kilobyte<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$mb = 1024 * $kb; &nbsp; // Megabyte<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$gb = 1024 * $mb; &nbsp; // Gigabyte<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$tb = 1024 * $gb; &nbsp; // Terabyte<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($size &lt; $kb) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $size.&quot; B&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else if($size &lt; $mb) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return round($size/$kb,2).&quot; KB&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else if($size &lt; $gb) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return round($size/$mb,2).&quot; MB&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else if($size &lt; $tb) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return round($size/$gb,2).&quot; GB&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return round($size/$tb,2).&quot; TB&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//获取文件类型<br/> &nbsp; &nbsp; &nbsp;function getExt($filename=false)<br/> &nbsp; &nbsp; &nbsp;&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($filename)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$stuff = pathinfo($filename);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $stuff&#91;&#039;extension&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($this-&gt;CanUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ext=$_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;name&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $extStr=explode(&#039;.&#039;,$ext);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $count=count($extStr)-1;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $extStr&#91;$count&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//获取文件名称<br/> &nbsp; &nbsp; &nbsp;function getName()<br/> &nbsp; &nbsp; &nbsp;&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;CanUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;name&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> <br/> &nbsp; &nbsp; &nbsp;//新建文件名<br/> &nbsp; &nbsp; &nbsp;function newName()<br/> &nbsp; &nbsp; &nbsp;&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($this-&gt;CanUpload)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $FullName=$_FILES&#91;$this-&gt;FormName&#93;&#91;&#039;name&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $extStr=explode(&#039;.&#039;,$FullName);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $count=count($extStr)-1;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ext = $extStr&#91;$count&#93;;<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return date(&#039;YmdHis&#039;).rand(0,9).&#039;.&#039;.$ext;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &#125;<br/> <br/> &nbsp; &nbsp; &nbsp; //显示错误参数<br/> &nbsp; &nbsp; &nbsp; function Err()&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;Error;<br/> &nbsp; &nbsp; &nbsp; &#125;<br/> <br/> &nbsp; &nbsp; &nbsp;//上传后的文件名<br/> &nbsp; &nbsp; &nbsp;function UpFile()&#123;<br/> <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;doUpFile != &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;doUpFile;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;Error = 6;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &#125;<br/> <br/> &nbsp; &nbsp; &nbsp;//上传文件的路径<br/> &nbsp; &nbsp; &nbsp;function filePath()&#123;<br/> <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;doUpFile != &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;Directroy.$this-&gt;doUpFile;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;Error = 6;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125; &nbsp;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> <br/> &nbsp; &nbsp; &nbsp;//缩略图文件名称<br/> &nbsp; &nbsp; &nbsp;function thumbMap()&#123;<br/> <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this-&gt;sm_File != &#039;&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $this-&gt;sm_File;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;Error = 6;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; //////////////////extention<br/> &nbsp; &nbsp; &nbsp;/**//**<br/> &nbsp; &nbsp; &nbsp;* 检测用户提交文件类型是否合法<br/> &nbsp; &nbsp; &nbsp;* @access private<br/> &nbsp; &nbsp; &nbsp;* @return boolean 如果为true说明类型合法，反之不合法<br/> &nbsp; &nbsp; &nbsp;*/<br/> &nbsp; &nbsp; &nbsp;function checkType($extension) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ($this-&gt;allow_type as $type) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (strcasecmp($extension , $type) == 0)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> <br/> &nbsp; &nbsp; &nbsp;/**//**<br/> &nbsp; &nbsp; &nbsp;* 取给定文件文件名，不包括扩展名。<br/> &nbsp; &nbsp; &nbsp;* eg: getBaseName(&quot;j:/hexuzhong.jpg&quot;); //返回 hexuzhong<br/> &nbsp; &nbsp; &nbsp;* <br/> &nbsp; &nbsp; &nbsp;* @param String $filename 给定要取文件名的文件<br/> &nbsp; &nbsp; &nbsp;* @access private<br/> &nbsp; &nbsp; &nbsp;* @return String 返回文件名<br/> &nbsp; &nbsp; &nbsp;*/<br/><br/> &nbsp; &nbsp; &nbsp;function getBaseName($filename, $type) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $basename = basename($filename, $type);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $basename;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;function halt($msg) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $msg;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;/**//**<br/> &nbsp; &nbsp; &nbsp;* 检测用户提交文件大小是否合法<br/> &nbsp; &nbsp; &nbsp;* @param Integer $size 用户上传文件的大小<br/> &nbsp; &nbsp; &nbsp;* @access private<br/> &nbsp; &nbsp; &nbsp;* @return boolean 如果为true说明大小合法，反之不合法<br/> &nbsp; &nbsp; &nbsp;*/<br/> &nbsp; &nbsp; function checkSize($size) &#123;<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($size &gt; $this-&gt;MaxSize ) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;<br/> &nbsp; &nbsp; function get6random()&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$return = false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$str = &quot;1 2 3 4 5 6 7 8 9&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$arr = explode(&quot; &quot;,$str);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;srand((double)microtime()*1000000);<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for($i=0;$i&lt;=6;$i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $salt = rand(0, 9);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $return .= $arr&#91;$salt&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $return;<br/> &nbsp; &nbsp; &#125;<br/><br/><br/> <br/>&#125;<br/><br/>////////////////////////////测试<br/>/*<br/>echo &#039;<br/>&lt;form action=&quot;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot; name=&quot;form1&quot;&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;file&quot; name=&quot;file&#91;&#93;&quot;&gt;&lt;br&gt;<br/>&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;提交&quot;&gt;<br/>&lt;input name=&quot;scan&quot; type=&quot;hidden&quot; id=&quot;up&quot; value=&quot;true&quot;&gt;<br/>&lt;/form&gt;<br/>&#039;;<br/>if(!empty($_POST&#91;&#039;scan&#039;&#93;))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp;<br/> &nbsp;require(&quot;config.php&quot;);<br/> &nbsp;require(&quot;php_ftp_class.php&quot;);<br/> &nbsp;$ini_array = array();<br/> &nbsp;*//*<br/> &nbsp;$settings&#91;&#039;FTP_HOST&#039;&#93;=&#039;192.168.1.8&#039;;<br/> &nbsp;$settings&#91;&#039;FTP_USER&#039;&#93;=&#039;program&#039;;<br/> &nbsp;$settings&#91;&#039;FTP_PW&#039;&#93;=&#039;k8c3321d&#039;;<br/> &nbsp;$settings&#91;&#039;FTP_ROOT_DIR&#039;&#93;=&#039;E:/web/program/product&#039;;<br/> &nbsp;*//*<br/> &nbsp;$ini_array&#91;&#039;host&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $settings&#91;&#039;FTP_HOST&#039;&#93;;<br/> &nbsp;$ini_array&#91;&#039;user&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $settings&#91;&#039;FTP_USER&#039;&#93;;<br/> &nbsp;$ini_array&#91;&#039;pw&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = $settings&#91;&#039;FTP_PW&#039;&#93;;<br/> &nbsp;$ini_array&#91;&#039;root_dir&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; = $settings&#91;&#039;FTP_ROOT_DIR&#039;&#93;;<br/><br/> &nbsp;$ini_array&#91;&#039;remote_host_path&#039;&#93; = &quot;http://192.168.1.8/&quot;;<br/> &nbsp;$ini_array&#91;&#039;user_post_file&#039;&#93; &nbsp; = $_FILES&#91;&#039;file&#039;&#93;; <br/> &nbsp;$ini_array&#91;&#039;allow_type&#039;&#93; &nbsp; &nbsp; &nbsp; = array(&#039;gif&#039;, &#039;jpg&#039;, &#039;png&#039;, &#039;bmp&#039;);<br/><br/> &nbsp;$ini_array&#91;&#039;is_zoom&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= true;//需要生成缩略图<br/> &nbsp;<br/> &nbsp;<br/> &nbsp;$ini_array&#91;&#039;is_watermark&#039;&#93; &nbsp; &nbsp; = true;//需要加水印<br/> &nbsp;$ini_array&#91;&#039;waterPos&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; = 5 ; //缺省为随机//0为随机 //1为顶端居左 //2为顶端居中 //3为顶端居右 //4为中部居左 //5为中部居中 //6为中部居右 //7为底端居左 //8为底端居中 //9为底端居右 <br/> &nbsp;$ini_array&#91;&#039;waterImage&#039;&#93; &nbsp; &nbsp; &nbsp; = &quot;./tmpfolder/angel.gif&quot;; //水印图片<br/> &nbsp;$ini_array&#91;&#039;waterText&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;&quot;;<br/> &nbsp;$ini_array&#91;&#039;textFont&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp; = 6;<br/> &nbsp;$ini_array&#91;&#039;textColor&#039;&#93; &nbsp; &nbsp; &nbsp; &nbsp;= &quot;#ff0000&quot;;<br/> <br/> &nbsp;$ini_array&#91;&#039;is_same_name&#039;&#93; &nbsp; &nbsp; = 1;//不需要重命名上传文件<br/><br/> &nbsp;$upfos = new php_upload_class($ini_array);<br/> &nbsp;<br/> &nbsp;$tmpfolder = &quot;./tmpfolder&quot;;<br/> &nbsp;<br/> &nbsp;if(!file_exists($tmpfolder)) mkdir($tmpfolder, 0777);<br/> &nbsp;<br/> &nbsp;$upfos-&gt;Directroy &nbsp;= $tmpfolder;<br/><br/> &nbsp;$upfos-&gt;upload_mutiple_file();<br/> <br/> &nbsp;echo $upfos-&gt;mutiple_up_res; <br/> &nbsp;<br/> &nbsp;foreach($upfos-&gt;save_info as $fileInfo)&#123;<br/> &nbsp; &nbsp; &nbsp;echo &#039;&lt;iframe src=&quot;ftp_put.php?to=&#039;.$fileInfo&#91;&#039;saveas&#039;&#93;.&#039;&amp;from=&#039;.$fileInfo&#91;&#039;path&#039;&#93;.&#039;&quot; frameborder=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; scrolling=&quot;no&quot; &gt;&lt;/iframe&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp;if($upfos-&gt;is_zoom) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;echo &#039;&lt;iframe src=&quot;ftp_put.php?to=p_small/&#039;.$upfos-&gt;dscChar.$fileInfo&#91;&#039;saveas&#039;&#93;.&#039;&amp;from=&#039;.dirname($fileInfo&#91;&#039;path&#039;&#93;).&quot;/&quot;.$upfos-&gt;dscChar.$fileInfo&#91;&#039;saveas&#039;&#93;.&#039;&quot; frameborder=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; scrolling=&quot;no&quot; &gt;&lt;/iframe&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp;&#125;<br/><br/> // if($upfos-&gt;is_zoom) echo &quot;&lt;img src=&#039;&#123;$tmpfolder&#125;/sm_&quot;.$upfos-&gt;save_info&#91;0&#93;&#91;&#039;name&#039;&#93;.&quot;&#039;&gt;&lt;br&gt;&quot;;<br/> &nbsp;<br/> // echo &quot;&lt;img src=&#039;&#123;$tmpfolder&#125;/&quot;.$upfos-&gt;save_info&#91;0&#93;&#91;&#039;name&#039;&#93;.&quot;&#039;&gt;&quot;;<br/><br/>&#125;<br/>*/<br/>?&gt;<br/>以上程序运行必要文件。<br/>php_ftp_class.php<br/><br/>&lt;?<br/>class php_ftp_class&#123;<br/> &nbsp; &nbsp; &nbsp;var $user &nbsp; &nbsp; ;<br/> &nbsp; &nbsp; &nbsp;var $pw &nbsp; &nbsp; &nbsp; ;<br/> &nbsp; &nbsp; &nbsp;var $host &nbsp; &nbsp; ;<br/> &nbsp; &nbsp; &nbsp;var $root_dir = &quot;&quot;;//root ftp dir of server<br/> &nbsp; &nbsp; &nbsp;var $con_id &nbsp; = 0;//descriptor on ftp connection<br/> &nbsp; &nbsp; &nbsp;var $cwd;//current working dir<br/> &nbsp; &nbsp; &nbsp;var $FTP_MODE = &#039;FTP_BINARY&#039;;// FTP_ASCII &#124; FTP_BINARY<br/> &nbsp; &nbsp; &nbsp;var $ERR &nbsp; &nbsp; &nbsp;= false;//must object display ftp errors<br/> &nbsp; &nbsp; &nbsp;//constr.<br/> &nbsp; &nbsp; &nbsp;function php_ftp_class($ini_array=array(&#039;host&#039;=&gt;&quot;localhost&quot;,&#039;user&#039;=&gt;&quot;guest&quot;,&#039;pw&#039;=&gt;&quot;guest&quot;,&#039;root_dir&#039;=&gt;&quot;&quot;,&#039;remote_path&#039;=&gt;&#039;http://localhost&#039;))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;host &nbsp; &nbsp; = $ini_array&#91;&#039;host&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;user &nbsp; &nbsp; = $ini_array&#91;&#039;user&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;pw &nbsp; &nbsp; &nbsp; = $ini_array&#91;&#039;pw&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;root_dir = $ini_array&#91;&#039;root_dir&#039;&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($this-&gt;connect())&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;cwd = @ftp_pwd($this-&gt;con_id); //返回当前目录名<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//connect to ftp server<br/> &nbsp; &nbsp; &nbsp;function connect()&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;con_id = @ftp_connect($this-&gt;host);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!$this-&gt;con_id)&#123;<br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &quot;&lt;li&gt;尝试连接到远程主机&quot;.$this-&gt;host.&quot;时发生错误，连接失败&lt;/li&gt;&quot;; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(@ftp_login($this-&gt;con_id,$this-&gt;user,$this-&gt;pw))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;用户名 &lt;b&gt;&amp;quot;&quot;.$this-&gt;user.&quot;&amp;quot;&lt;/b&gt; 错误，不能登录到远端主机 &lt;b&gt;&amp;quot;&quot;.$this-&gt;host.&quot;&amp;quot;&lt;/b&gt;,登录失败&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//close ftp connection<br/> &nbsp; &nbsp; &nbsp;function close()&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ftp_quit($this-&gt;con_id);<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//print error messages<br/> &nbsp; &nbsp; &nbsp;function error()&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &nbsp; $this-&gt;ERR ? &quot;&lt;ul&gt;FTP错误：&quot;.$this-&gt;ERR.&quot;&lt;/ul&gt;&#92;n&quot; : false;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//change current working dir<br/> &nbsp; &nbsp; &nbsp;function cd($dir)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@ftp_chdir($this-&gt;con_id,$dir))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;Cannot view directory &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$dir.&quot;&amp;quot;&lt;/b&gt;!&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;cwd=@ftp_pwd($this-&gt;con_id);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//create new empty file<br/> &nbsp; &nbsp; &nbsp;function mk_file($name)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!$tmpfile=tempnam(&quot;/tmp&quot;,&quot;phpftptmp&quot;))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;Can&#039;t create temp file?&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;elseif(!ftp_put($this-&gt;con_id,$name,$tmpfile,$this-&gt;FTP_MODE))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &quot;&lt;li&gt;Can&#039;t create file &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$name.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($tmpfile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unlink($tmpfile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//create new dir<br/> &nbsp; &nbsp; &nbsp;function mk_dir($dir_name,$ret=false)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mkdir = @ftp_mkdir($this-&gt;con_id,$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$dir_name);<br/> &nbsp; &nbsp; &nbsp; &nbsp; if (!$mkdir &amp;&amp; !$ret)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &quot;&lt;li&gt;不能创建文件夹 &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.$this-&gt;cwd.$dir_name.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//change access right to object<br/> &nbsp; &nbsp; &nbsp;function set_perm($obj,$num)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //CHMOD 444 ftp.php3<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!$this-&gt;site(&quot;CHMOD &quot;.$num.&quot; &quot;.$obj))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;Cannot change permitions of object &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$obj.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//send SITE command<br/> &nbsp; &nbsp; &nbsp;function site($cmd)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!ftp_site($this-&gt;con_id, $cmd))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;Cannot send site command &lt;b&gt;&amp;quot;&quot;.$cmd.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//copy file D:/web/images.imp3.net/upload/product $ftp-&gt;copy(&quot;./images/upload_success.gif&quot;,&quot;upload_success.gif&quot;,true);<br/> &nbsp; &nbsp; &nbsp;function copy($from,$to)&#123;<br/> &nbsp; &nbsp;/*<br/> &nbsp;if(file_exists($this-&gt;root_dir.&quot;/&quot;.$to))&#123;<br/> &nbsp; &nbsp; &nbsp;$this-&gt;error(&quot;Object &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$to.&quot;&amp;quot;&lt;/b&gt; already exists!&quot;);<br/> &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;srand((double)microtime()*1000000);<br/> &nbsp; &nbsp;$tmpfile= dirname(tempnam(&#039;&#039;,&#039;&#039;)).&quot;/phpftptmp.&quot;.rand() ;<br/> &nbsp; &nbsp;*/<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!copy($from,$to))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;上传&lt;b&gt;&amp;quot;$from&amp;quot;&lt;/b&gt;到&lt;b&gt;&amp;quot;$this-&gt;root_dir/$to&amp;quot;&lt;/b&gt;失败！&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;function ftp_put($remote_file,$local_file,$ftp_mode=false)&#123;<br/> &nbsp; &nbsp;/*<br/> &nbsp;if(file_exists($this-&gt;root_dir.&quot;/&quot;.$to))&#123;<br/> &nbsp; &nbsp; &nbsp;$this-&gt;error(&quot;Object &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$to.&quot;&amp;quot;&lt;/b&gt; already exists!&quot;);<br/> &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;*/<br/> &nbsp;//FTP_BINARY为什么不能用变量代替???<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!$ftp_mode)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!ftp_put($this-&gt;con_id,$this-&gt;root_dir.&quot;/&quot;.$remote_file,$local_file,FTP_BINARY))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;上传&lt;b&gt;&amp;quot;$local_file&amp;quot;&lt;/b&gt;到&lt;b&gt;&amp;quot;$this-&gt;root_dir/$remote_file&amp;quot;&lt;/b&gt;失败！&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!ftp_put($this-&gt;con_id,$this-&gt;root_dir.&quot;/&quot;.$remote_file,$local_file,FTP_ASCII))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;上传&lt;b&gt;&amp;quot;$local_file&amp;quot;&lt;/b&gt;到&lt;b&gt;&amp;quot;$this-&gt;root_dir/$remote_file&amp;quot;&lt;/b&gt;失败！&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;//move object<br/> &nbsp; &nbsp; &nbsp;function move($from,$to)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@ftp_rename($this-&gt;con_id,$this-&gt;root_dir.&quot;/&quot;.$from,$this-&gt;root_dir.&quot;/&quot;.$to))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;移动 &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$from.&quot;&amp;quot;&lt;/b&gt; 到 &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$to.&quot;&amp;quot;失败！&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//rename object<br/> &nbsp; &nbsp; &nbsp;function rename($from,$to)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@ftp_rename($this-&gt;con_id,$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$from,$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$to))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;Cannot rename object &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$to.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//delete directory &nbsp;<br/> &nbsp; &nbsp; &nbsp;function delete_dir($dir)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@ftp_rmdir($this-&gt;con_id, $this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$dir))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;不能删除远端文件夹 &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$dir.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true; &nbsp;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp;//delte file<br/> &nbsp; &nbsp; &nbsp;function delete_file($file)&#123;<br/> &nbsp; &nbsp;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!@ftp_delete($this-&gt;con_id, $this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$file))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&gt;ERR .= &quot;&lt;li&gt;不能删除远端文件 &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$file.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true; &nbsp;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//write into file<br/> &nbsp; &nbsp; &nbsp;function write($dest,$FILEDATA)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!WIN)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$old_perm=$this-&gt;get_perm($dest,&#039;i&#039;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;set_perm($dest,&quot;666&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$fd=fopen($this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$dest,&quot;w&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!fwrite($fd,$FILEDATA))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &quot;&lt;li&gt;Cannot write file &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$dest.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fclose($fd);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!WIN)$this-&gt;set_perm($dest,&quot;644&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fclose($fd);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!WIN)$this-&gt;set_perm($dest,&quot;644&quot;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//move uploaded file from TMP into CWD<br/> &nbsp; &nbsp; &nbsp;function move_uploaded_file($file_to_move,$file_name)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; srand((double)microtime()*1000000);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!$tmp_dir=get_cfg_var(&#039;upload_tmp_dir&#039;))$tmp_dir=dirname(tempnam(&#039;&#039;,&#039;&#039;));<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$tmpfile=$tmp_dir.&quot;/phpftptmp.&quot;.rand();<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!copy($file_to_move,$tmpfile))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &nbsp;&quot;&lt;li&gt;Can&#039;t create temp file?&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($file_to_move);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;elseif(!ftp_put($this-&gt;con_id,$this-&gt;cwd.&quot;/&quot;.$file_name,$tmpfile,$this-&gt;FTP_MODE))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;ERR .= &quot;&lt;li&gt;Can&#039;t write file &lt;b&gt;&amp;quot;&quot;.$this-&gt;root_dir.&quot;/&quot;.$this-&gt;cwd.&quot;/&quot;.$file_name.&quot;&amp;quot;&lt;/b&gt;&lt;/li&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($file_to_move);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($tmpfile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($file_to_move);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unlink($tmpfile);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return true;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/><br/> &nbsp; &nbsp; &nbsp;//return access right of an object, at various formats<br/> &nbsp; &nbsp; &nbsp;function get_perm($obj,$type=&#039;i&#039;)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $num=fileperms($obj);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$s=array(07=&gt;&#039;rwx&#039;,06=&gt;&#039;rw-&#039;,05=&gt;&#039;r-x&#039;,04=&gt;&#039;r--&#039;,03=&gt;&#039;-wx&#039;,02=&gt;&#039;-w-&#039;,01=&gt;&#039;--x&#039;,00=&gt;&#039;---&#039;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$i=array(07=&gt;&#039;7&#039;,06=&gt;&#039;6&#039;,05=&gt;&#039;5&#039;,04=&gt;&#039;4&#039;,03=&gt;&#039;3&#039;,02=&gt;&#039;2&#039;,01=&gt;&#039;1&#039;,00=&gt;&#039;0&#039;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$b=array(<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;07=&gt;array(1,1,1),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;06=&gt;array(1,1,0),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;05=&gt;array(1,0,1),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;04=&gt;array(1,0,0),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;03=&gt;array(0,1,1),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;02=&gt;array(0,1,0),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;01=&gt;array(0,0,1),<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;00=&gt;array(0,0,0)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;switch($type)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &#039;b&#039;:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret&#91;&#039;o&#039;&#93;=$b&#91;($num &amp; 0700)&gt;&gt;6&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret&#91;&#039;g&#039;&#93;=$b&#91;($num &amp; &nbsp;070)&gt;&gt;3&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret&#91;&#039;a&#039;&#93;=$b&#91;($num &amp; &nbsp; 07) &nbsp; &#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &#039;s&#039;:<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($num &amp; 0x1000) &nbsp; &nbsp; $ret =&#039;p&#039;;//FIFO pipe<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0x2000) $ret.=&#039;c&#039;;//Character special<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0x4000) $ret.=&#039;d&#039;;//Directory<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0x6000) $ret.=&#039;b&#039;;//Block special<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0x8000) $ret.=&#039;-&#039;;//Regular<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0xA000) $ret.=&#039;l&#039;;//Symbolic Link<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;elseif($num &amp; 0xC000) $ret.=&#039;s&#039;;//Socket<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else $str.=&#039;?&#039;; //UNKNOWN<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret.=$s&#91;($num &amp; 0700)&gt;&gt;6&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret.=$s&#91;($num &amp; &nbsp;070)&gt;&gt;3&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret.=$s&#91;($num &amp; &nbsp; 07) &nbsp; &#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;case &#039;i&#039;:<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret =$i&#91;($num &amp; 0700)&gt;&gt;6&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret.=$i&#91;($num &amp; &nbsp;070)&gt;&gt;3&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$ret.=$i&#91;($num &amp; &nbsp; 07) &nbsp; &#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $ret;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/> &nbsp; &nbsp;//这里显示方式可以按自己的方法修改<br/> &nbsp; &nbsp; &nbsp;//print dir file list<br/> &nbsp; &nbsp; &nbsp;function dir_list()&#123;<br/> &nbsp; &nbsp;//ftp_nlist ?Returns a list of files in the given directory.<br/> &nbsp; &nbsp;//ftp_rawlist ?Returns a detailed list of files in the given directory. <br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir_list = &#039;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;table border=1 cellpadding=3 cellspacing=0&gt;&lt;tr&gt;&lt;td&gt;Directories&lt;/td&gt;&lt;td&gt;Files&lt;/td&gt;&lt;/tr&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $contents=ftp_nlist($this-&gt;con_id, $this-&gt;cwd);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $d_i=0;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f_i=0;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sort($contents);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for($i=0;$i&lt;count($contents);$i++)&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $file_size=ftp_size($this-&gt;con_id,$contents&#91;$i&#93;);<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(is_dir($this-&gt;root_dir.$contents&#91;$i&#93;))&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $nlist_dirs&#91;$d_i&#93;=$contents&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $d_i++;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;else&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $nlist_files&#91;$f_i&#93;=$contents&#91;$i&#93;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $nlist_filesize&#91;$f_i&#93;=$file_size;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f_i++;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dir_list .=&#039;&lt;tr&gt;&lt;td&gt;&lt;pre&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for($i=0;$i&lt;count($nlist_dirs);$i++)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dir_list .=$nlist_dirs&#91;$i&#93;.&quot;&lt;br&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir_list .=&#039;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for($i=0;$i&lt;count($nlist_files);$i++)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dir_list .=$nlist_files&#91;$i&#93;.&quot; &quot;.(int)$nlist_filesize&#91;$f_i&#93;.&quot;&lt;br&gt;&quot;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir_list .=&#039;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#039;;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return $dir_list;<br/> &nbsp; &nbsp; &nbsp;&#125;<br/>&#125;<br/>/*测试<br/> &nbsp; &nbsp; require(&quot;config.php&quot;);<br/><br/> &nbsp; &nbsp; $FTP_HOST=$settings&#91;&#039;FTP_HOST&#039;&#93;;<br/> &nbsp; &nbsp; $FTP_USER=$settings&#91;&#039;FTP_USER&#039;&#93;;<br/> &nbsp; &nbsp; $FTP_PW=$settings&#91;&#039;FTP_PW&#039;&#93;;<br/> &nbsp; &nbsp; $FTP_ROOT_DIR=$settings&#91;&#039;FTP_ROOT_DIR&#039;&#93;;<br/> &nbsp; &nbsp; $ftp = new php_ftp_class($FTP_USER,$FTP_PW,$FTP_HOST,$FTP_ROOT_DIR);<br/> &nbsp; &nbsp; $ftp-&gt;connect();<br/> &nbsp; &nbsp; &nbsp; &nbsp; $ftp-&gt;ftp_put(&quot;upload_success.gif&quot;,&quot;./images/upload_success.gif&quot;);<br/> &nbsp; &nbsp; $ftp-&gt;close();<br/> &nbsp; &nbsp; $ftp-&gt;error();*/<br/><br/><br/>?&gt;<br/></div>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 一个处理图片上传问题的多功能PHP类(CLASS)]]></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>