上传表单 在ThinkPHP中使用上传功能无需进行特别处理。例如,下面是一个带有附件上传的表单提交: form action = __URL__/upload enctype = multipart/form-data method = post input type = text name = name / input type = file name = photo / input typ
上传表单
在ThinkPHP中使用上传功能无需进行特别处理。例如,下面是一个带有附件上传的表单提交:
<ol><li><code><span><form</span><span>action</span><span>=</span><span>"__URL__/upload"</span><span>enctype</span><span>=</span><span>"multipart/form-data"</span><span>method</span><span>=</span><span>"post"</span><span>></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>"text"</span><span>name</span><span>=</span><span>"name"</span><span>/></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>"file"</span><span>name</span><span>=</span><span>"photo"</span><span>/></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>"submit"</span><span>value</span><span>=</span><span>"提交"</span><span>></span></code></li><li><code></code></li></ol>
注意,要使用上传功能 你的表单需要设置 enctype=”multipart/form-data”
多文件上传支持
如果需要使用多个文件上传,只需要修改表单,把
<ol><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo'</span><span>></span></code></li></ol>
改为
<ol><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo1'</span><span>></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo2'</span><span>></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo3'</span><span>></span></code></li></ol>
或者
<ol><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo[]'</span><span>></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo[]'</span><span>></span></code></li><li><code><span><input</span><span>type</span><span>=</span><span>'file'</span><span>name</span><span>=</span><span>'photo[]'</span><span>></span></code></li></ol>
两种方式的多附件上传系统的文件上传类都可以自动识别。
上传操作
ThinkPHP文件上传操作使用Think\Upload
类,假设前面的表单提交到当前控制器的upload方法,我们来看下upload方法的实现代码:
<ol><li><code><span>public</span><span>function</span><span> upload</span><span>(){</span></code></li><li><code><span> $upload </span><span>=</span><span>new</span><span> \Think\Upload</span><span>();</span><span>// 实例化上传类</span></code></li><li><code><span> $upload</span><span>-></span><span>maxSize </span><span>=</span><span>3145728</span><span>;</span><span>// 设置附件上传大小</span></code></li><li><code><span> $upload</span><span>-></span><span>exts </span><span>=</span><span> array</span><span>(</span><span>'jpg'</span><span>,</span><span>'gif'</span><span>,</span><span>'png'</span><span>,</span><span>'jpeg'</span><span>);</span><span>// 设置附件上传类型</span></code></li><li><code><span> $upload</span><span>-></span><span>rootPath </span><span>=</span><span>'./Uploads/'</span><span>;</span><span>// 设置附件上传根目录</span></code></li><li><code><span> $upload</span><span>-></span><span>savePath </span><span>=</span><span>''</span><span>;</span><span>// 设置附件上传(子)目录</span></code></li><li><code><span>// 上传文件 </span></code></li><li><code><span> $info </span><span>=</span><span> $upload</span><span>-></span><span>upload</span><span>();</span></code></li><li><code><span>if</span><span>(!</span><span>$info</span><span>)</span><span>{</span><span>// 上传错误提示错误信息</span></code></li><li><code><span> $this</span><span>-></span><span>error</span><span>(</span><span>$upload</span><span>-></span><span>getError</span><span>());</span></code></li><li><code><span>}</span><span>el<b>本文来源gao@!dai!ma.com搞$$代^@码5网@</b>se</span><span>{</span><span>// 上传成功</span></code></li><li><code><span> $this</span><span>-></span><span>success</span><span>(</span><span>'上传成功!'</span><span>);</span></code></li><li><code><span>}</span></code></li><li><code>}</code></li></ol>