首页 > php教程 > php手册 > PHP上传类upload.php的具体使用方法

PHP上传类upload.php的具体使用方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-13 11:06:08
原创
1475 人浏览过

我们今天为大家带来的是关于具体代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

<ol class="dp-xml">

<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span> </span></span></li>

<li class=""><span> </span></li>

<li class="alt"><span>/**  </span></li>

<li class=""><span> * 我的文件上传类  </span></li>

<li class="alt"><span> *  </span></li>

<li class=""><span> * 未完成的功能:  </span></li>

<li class="alt"><span> * 1.对目标目录是否存在的判断  </span></li>

<li class=""><span> * 2.如果上传时出现重名,自动重命名  </span></li>

<li class="alt"><span> *   </span></li>

<li class="">

<span> * @author M.Q. </span><span class="tag"><strong><font color="#006699"></font></strong></span><span>[url]www.mengqi.net[/url]</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>

</li>

<li class="alt"><span> */  </span></li>

<li class=""><span>class upload  </span></li>

<li class="alt"><span>{  </span></li>

<li class=""><span>    /**  </span></li>

<li class="alt"><span>     * PHP上传类upload.php上传文件的信息,此值由构造函数取得,如果上传文件失败或出错或未上传,则此值为false  </span></li>

<li class=""><span>     *  </span></li>

<li class="alt"><span>     * @var array  </span></li>

<li class=""><span>     */  </span></li>

<li class="alt">

<span>    private $</span><span class="attribute"><font color="#ff0000">file</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">false</font></span><span>;   </span>

</li>

<li class=""><span>      </span></li>

<li class="alt"><span>     </span></li>

<li class=""><span>    /**  </span></li>

<li class="alt"><span>     * 构造函数:取得上传文件的信息  </span></li>

<li class=""><span>     *   </span></li>

<li class="alt"><span>     * 如果在上传文件的工程中发生错误,那么出错的文件不会放在结果中返回,结果中的文件都是可用的  </span></li>

<li class=""><span>     *  </span></li>

<li class="alt">

<span>     * @param string $tag form表单中</span><strong><font color="#006699"><span class="tag"><span class="tag-name">input</span><span class="tag">></span></span></font></strong><span>标签中name属性的值,例</span><strong><font color="#006699"><span class="tag"><span class="tag-name">input</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"p"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"file"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>

</li>

<li class=""><span>     *   </span></li>

<li class="alt"><span>     * 例1,上传单个文件:  </span></li>

<li class="">

<span>     * </span><strong><font color="#006699"><span class="tag"><span class="tag-name">input</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"upfile"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"file"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>

</li>

<li class="alt"><span>     *   </span></li>

<li class=""><span>     * 例2,上传多个文件:  </span></li>

<li class="alt">

<span>     * </span><strong><font color="#006699"><span class="tag"><span class="tag-name">input</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"upfile[]"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"file"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>

</li>

<li class="">

<span>     * </span><strong><font color="#006699"><span class="tag"><span class="tag-name">input</span></span></font></strong><span> </span><span class="attribute"><font color="#ff0000">name</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"upfile[]"</font></span><span> </span><span class="attribute"><font color="#ff0000">type</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">"file"</font></span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>

</li>

<li class="alt"><span>     *   </span></li>

<li class=""><span>     * 结果(保存在$file变量中)如下:  </span></li>

<li class="alt"><span>     *   </span></li>

<li class=""><span>     * array(  </span></li>

<li class="alt">

<span>     * [0] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array(  </span>

</li>

<li class="">

<span>     *      'name'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'abc.txt'  </span>

</li>

<li class="alt">

<span>     *      'type'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'text/plain’  </span>

</li>

<li class="">

<span>     *      'tmp_name'  =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> '/tmp/phpgxecCb'  </span>

</li>

<li class="alt">

<span>     *      'error'     =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0  </span>

</li>

<li class="">

<span>     *      'size'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 62  </span>

</li>

<li class="alt"><span>     *      )  </span></li>

<li class="">

<span>     * [1] =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array(  </span>

</li>

<li class="alt">

<span>     *      'name'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'abc.txt'  </span>

</li>

<li class="">

<span>     *      'type'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 'text/plain’  </span>

</li>

<li class="alt">

<span>     *      'tmp_name'  =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> '/tmp/phpgxecCb'  </span>

</li>

<li class="">

<span>     *      'error'     =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 0  </span>

</li>

<li class="alt">

<span>     *      'size'      =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 62  </span>

</li>

<li class=""><span>     *      )  </span></li>

<li class="alt"><span>     * )  </span></li>

<li class=""><span>     */  </span></li>

<li class="alt"><span>    public function __construct($tag)  </span></li>

<li class=""><span>    {  </span></li>

<li class="alt">

<span>        $</span><span class="attribute"><font color="#ff0000">file</font></span><span> = $_FILES[$tag];  </span>

</li>

<li class=""><span>                 </span></li>

<li class="alt"><span>        if (!isset($file) || empty($file))   </span></li>

<li class=""><span>        {  </span></li>

<li class="alt"><span>            return//没有上传文件  </span></li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>          </span></li>

<li class="">

<span>        $</span><span class="attribute"><font color="#ff0000">num</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">count</font></span><span>($file['name']); //PHP上传类upload.php上传文件的个数  </span>

</li>

<li class="alt"><span>          </span></li>

<li class="">

<span>        $</span><span class="attribute"><font color="#ff0000">data</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>(); //用来保存上传文件的信息的数组  </span>

</li>

<li class="alt"><span> </span></li>

<li class=""><span>        //上传了多个文件  </span></li>

<li class="alt">

<span>        if ($num </span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 1)  </span>

</li>

<li class=""><span>        {  </span></li>

<li class="alt">

<span>            for($</span><span class="attribute"><font color="#ff0000">i</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">0</font></span><span>; $i </span><span class="tag"><strong><font color="#006699"></font></strong></span><span> $num$i++)  </span>

</li>

<li class=""><span>            {  </span></li>

<li class="alt">

<span>                $</span><span class="attribute"><font color="#ff0000">d</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>();  </span>

</li>

<li class=""><span>                $d['name']       = $file['name'][$i];  </span></li>

<li class="alt"><span>                $d['type']       = $file['type'][$i];  </span></li>

<li class=""><span>                $d['tmp_name']   = $file['tmp_name'][$i];  </span></li>

<li class="alt"><span>                $d['error']      = $file['error'][$i];  </span></li>

<li class=""><span>                $d['size']       = $file['size'][$i];  </span></li>

<li class="alt"><span>                  </span></li>

<li class=""><span>                if ($d['error'] == 0)  </span></li>

<li class="alt"><span>                {  </span></li>

<li class=""><span>                    $data[] = $d;  </span></li>

<li class="alt"><span>                }  </span></li>

<li class=""><span>                else   </span></li>

<li class="alt"><span>                {  </span></li>

<li class=""><span>                    @unlink($d['tmp_name']);  </span></li>

<li class="alt"><span>                }  </span></li>

<li class=""><span>            }  </span></li>

<li class="alt"><span>        }  </span></li>

<li class=""><span>        //只上传了一个文件  </span></li>

<li class="alt"><span>        else   </span></li>

<li class=""><span>        {  </span></li>

<li class="alt">

<span>            $</span><span class="attribute"><font color="#ff0000">d</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>();  </span>

</li>

<li class=""><span>            $d['name']       = $file['name'];  </span></li>

<li class="alt"><span>            $d['type']       = $file['type'];  </span></li>

<li class=""><span>            $d['tmp_name']   = $file['tmp_name'];  </span></li>

<li class="alt"><span>            $d['error']      = $file['error'];  </span></li>

<li class=""><span>            $d['size']       = $file['size'];  </span></li>

<li class="alt"><span>              </span></li>

<li class=""><span>            if ($d['error'] == 0)  </span></li>

<li class="alt"><span>            {  </span></li>

<li class=""><span>                $data[] = $d;  </span></li>

<li class="alt"><span>            }  </span></li>

<li class=""><span>            else   </span></li>

<li class="alt"><span>            {  </span></li>

<li class=""><span>                @unlink($d['tmp_name']);  </span></li>

<li class="alt"><span>            }  </span></li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>          </span></li>

<li class=""><span>        if (empty($data)) return;  </span></li>

<li class="alt"><span>          </span></li>

<li class="">

<span>        $this -</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span><span class="attribute"><font color="#ff0000">file</font></span><span> = $data//保存上传文件的信息  </span>

</li>

<li class="alt"><span>    }  </span></li>

<li class=""><span>      </span></li>

<li class="alt"><span>    /**  </span></li>

<li class=""><span>     * 将上传的文件从临时文件夹移动到目标路径  </span></li>

<li class="alt"><span>     *  </span></li>

<li class=""><span>     * @param array $src 文件信息数组,是$file数组的其中一个元素(仍然是数组)  </span></li>

<li class="alt"><span>     * @param string $destpath 上传的目标路径  </span></li>

<li class=""><span>     * @param string $filename 上传后的文件名,如果为空,则使用上传时的文件名  </span></li>

<li class="alt"><span>     * @return bool  </span></li>

<li class=""><span>     */  </span></li>

<li class="alt">

<span>    public function save($src$destpath, $</span><span class="attribute"><font color="#ff0000">filename</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">null</font></span><span>)  </span>

</li>

<li class=""><span>    {  </span></li>

<li class="alt">

<span>        $</span><span class="attribute"><font color="#ff0000">srcTName</font></span><span> = $src['tmp_name']; //原始上传文件的临时文件名  </span>

</li>

<li class="">

<span>        $</span><span class="attribute"><font color="#ff0000">srcFName</font></span><span> = $src['name'];     //原始文件名  </span>

</li>

<li class="alt"><span>          </span></li>

<li class=""><span>        //如果$filename参数为空,则使用上传时的文件名  </span></li>

<li class="alt"><span>        if (empty($filename))  </span></li>

<li class=""><span>        {  </span></li>

<li class="alt">

<span>            $</span><span class="attribute"><font color="#ff0000">filename</font></span><span> = $srcFName;  </span>

</li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>          </span></li>

<li class=""><span>        //$dest是文件最终要复制到的路径和文件名  </span></li>

<li class="alt"><span>        if (empty($destpath))  </span></li>

<li class=""><span>        {  </span></li>

<li class="alt">

<span>            $</span><span class="attribute"><font color="#ff0000">dest</font></span><span> = $filename;  </span>

</li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>        else   </span></li>

<li class=""><span>        {  </span></li>

<li class="alt"><span>            //修正路径中的斜杠,将末尾的修改为/,如果末尾不是也不是/,则给末尾添加一个/  </span></li>

<li class="">

<span>            $</span><span class="attribute"><font color="#ff0000">pathend</font></span><span> = $destpath[strlen($destpath) - 1]; //上传的目标路径的最后一个字符  </span>

</li>

<li class="alt">

<span>            if ($</span><span class="attribute"><font color="#ff0000">pathend</font></span><span> == '\')  </span>

</li>

<li class=""><span>            {  </span></li>

<li class="alt">

<span>                $</span><span class="attribute"><font color="#ff0000">dest</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">substr_replace</font></span><span>($destpath'/'strlen($destpath)-1).$filename;  </span>

</li>

<li class=""><span>            }  </span></li>

<li class="alt"><span>            else if ($pathend != '/')  </span></li>

<li class=""><span>            {  </span></li>

<li class="alt">

<span>                $</span><span class="attribute"><font color="#ff0000">dest</font></span><span> = $destpath.'/'.$filename;  </span>

</li>

<li class=""><span>            }  </span></li>

<li class="alt"><span>            else   </span></li>

<li class=""><span>            {  </span></li>

<li class="alt">

<span>                $</span><span class="attribute"><font color="#ff0000">dest</font></span><span> = $destpath.$filename;  </span>

</li>

<li class=""><span>            }  </span></li>

<li class="alt"><span>        }  </span></li>

<li class=""><span>            </span></li>

<li class="alt"><span>        //上传文件成功  </span></li>

<li class=""><span>        if (@move_uploaded_file($srcTName$dest))  </span></li>

<li class="alt"><span>        {  </span></li>

<li class=""><span>              </span></li>

<li class="alt"><span>            return true;   </span></li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>        else   </span></li>

<li class=""><span>        {  </span></li>

<li class="alt"><span>            return false;  </span></li>

<li class=""><span>        }  </span></li>

<li class="alt"><span>    }  </span></li>

<li class=""><span>      </span></li>

<li class="alt"><span>    /**  </span></li>

<li class=""><span>     * 取得上传文件的信息  </span></li>

<li class="alt"><span>     *  </span></li>

<li class=""><span>     * @return array  </span></li>

<li class="alt"><span>     */  </span></li>

<li class=""><span>    public function getFileInfo()  </span></li>

<li class="alt"><span>    {  </span></li>

<li class="">

<span>        return $this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>file;  </span>

</li>

<li class="alt"><span>    }  </span></li>

<li class=""><span>}  </span></li>

<li class="alt"><span> </span></li>

<li class=""><span> </span></li>

<li class="alt">

<span>$</span><span class="attribute"><font color="#ff0000">a</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> upload('upfile');  </span>

</li>

<li class=""><span> </span></li>

<li class="alt">

<span>$</span><span class="attribute"><font color="#ff0000">fileinfo</font></span><span> = $a -</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> getFileInfo();  </span>

</li>

<li class="">

<span>if ($</span><span class="attribute"><font color="#ff0000">fileinfo</font></span><span> == false)  </span>

</li>

<li class="alt"><span>{  </span></li>

<li class=""><span>    echo '没有上传文件!';  </span></li>

<li class="alt"><span>    exit;  </span></li>

<li class=""><span>}  </span></li>

<li class="alt"><span> </span></li>

<li class="">

<span>for($</span><span class="attribute"><font color="#ff0000">i</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">0</font></span><span>; $i </span><span class="tag"><strong><font color="#006699"></font></strong></span><span> </span><span class="tag-name"><strong><font color="#006699">count</font></strong></span><span>($fileinfo); $i++)  </span>

</li>

<li class="alt"><span>{  </span></li>

<li class=""><span>    echo '正在上传 '.$fileinfo[$i]['name'].' ';  </span></li>

<li class="alt">

<span>    if ($a -</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> save($fileinfo[$i], 'upload')) echo '完毕';  </span>

</li>

<li class=""><span>    else echo '失败';  </span></li>

<li class="alt">

<span>    echo '</span><strong><font color="#006699"><span class="tag"><span class="tag-name">br</span><span class="tag">></span></span></font></strong><span>';  </span>

</li>

<li class=""><span>}  </span></li>

<li class="alt">

<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>

</li>

</ol>

登录后复制

以上代码就是关于PHP上传类upload.php的具体使用方法。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板