PHP上传图片类显示缩略图功能

2025-05-29 0 78

缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下

?

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
<form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file" name="file" /><input type="submit" name='submit' value="提交" ></form>

<?php

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2016/6/28

* Time: 21:04

*/

class upload{

protected $fileMine;//文件上传类型

protected $filepath;//文件上传路径

protected $filemax;//文件上传大小

protected $fileExt;//文件上传格式

protected $filename;//文件名

protected $fileerror;//文件出错设置

protected $fileflag;//文件检测

protected $fileinfo; //FILES

protected $ext; //文件扩展

protected $path;

//文件上传

public function __construct($filename="file",$filemax=20000000,$filepath="./Uploads",$fileflag=true,$fileExt=array('jpg','exe'),$fileMine=array('image/jpeg'))

{

$this->filename=$filename;

$this->fileinfo=$_FILES[$this->filename];

$this->filemax=$filemax;

$this->filepath=$filepath;

$this->fileflag=$fileflag;

$this->fileExt=$fileExt;

$this->fileMine=$fileMine;

//var_dump($this->filename);

}

//错误判断

public function UpError(){

if($this->fileinfo['error']>0){

switch($this->fileinfo['error'])

{

case 1:

$this->fileerror="上传文件大小超过服务器允许上传的最大值,php.ini中设置upload_max_filesize选项限制的值 ";

break;

case 2:

$this->fileerror="上传文件大小超过HTML表单中隐藏域MAX_FILE_SIZE选项指定的值";

break;

case 3:

$this->fileerror="文件部分被上传";

break;

case 4:

$this->fileerror="没有选择上传文件";

break;

case 5:

$this->fileerror="未找到临时目录";

break;

case 6:

$this->fileerror="文件写入失败";

break;

case 7:

$this->fileerror="php文件上传扩展没有打开 ";

break;

case 8:

$this->fileerror="";

break;

}

return false;

}

return true;

}

//检测文件类型

public function UpMine(){

if(!in_array($this->fileinfo['type'],$this->fileMine)) {

$this->error="文件上传类型不对";

return false;

}

return true;

}

//检测文件格式

public function UpExt(){

$this->ext=pathinfo($this->fileinfo['name'],PATHINFO_EXTENSION);

//var_dump($ext);

if(!in_array($this->ext,$this->fileExt)){

$this->fileerror="文件格式不对";

return false;

}

return true;

}

//检测文件路径

public function UpPath(){

if(!file_exists($this->filepath)){

mkdir($this->filepath,0777,true);

}

}

//检测文件大小

public function UpSize(){

$max=$this->fileinfo['size'];

if($max>$this->filemax){

$this->fileerror="文件过大";

return false;

}

return true;

}

//检测文件是否HTTP

public function UpPost(){

if(!is_uploaded_file($this->fileinfo['tmp_name'])){

$this->fileerror="恶意上偿还";

return false;

}

return true;

}

//文件名防止重复

public function Upname(){

return md5(uniqid(microtime(true),true));

}

//图片缩略图

public function Smallimg($x=100,$y=100){

$imgAtt=getimagesize($this->path);

//图像宽,高,类型

$imgWidth=$imgAtt[0];

$imgHeight=$imgAtt[1];

$imgext=$imgAtt[2];

//等比列缩放

if(($x/$imgWidth)>($y/$imgHeight)){

$bl=$y/$imgHeight;

}else{

$bl=$x/$imgWidth;

}

$x=floor($imgWidth*$bl); //缩放后

$y=floor($imgHeight*$bl);

$images=imagecreatetruecolor($x,$y);

$big=imagecreatefromjpeg($this->path);

imagecopyresized($images,$big,0,0,0,0,$x,$y,$imgWidth,$imgWidth);

switch($imgext){

case 1:

$imageout=imagecreatefromgif($this->path);

break;

case 2:

$imageout=imagecreatefromjpeg($this->path);

break;

case 3:

$imageout=imagecreatefromgif($this->path);

break;

}

$im=imagejpeg($images,$this->path);

}

//文件双传

public function uploads()

{

if($this->UpError()&&$this->UpMine()&&$this->UpExt()&&$this->UpSize()&&$this->UpPost()){

$this->UpPath();

$names=$this->Upname();

$this->path=$this->filepath.'/'. $names.'.'.$this->ext;

if(move_uploaded_file($this->fileinfo['tmp_name'], $this->path)){

return $this->path;

}else{

$this->fileerror="上传失败";

}

}else{

exit("<b>".$this->fileerror."</b>");

}

}

}

<?php

header("content-type:imagejpeg");

header("Content-type:text/html;charset=utf-8");

require 'list.php';

$u=new upload();

$a=$u->uploads();

$c=$u->Smallimg();

echo "<img src={$a} />";

echo "<img src={$c} />";

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<title>Examples</title>

<meta name="description" content="">

<meta name="keywords" content="">

<link href="" rel="stylesheet">

</head>

<body>

<form action="ce.php" enctype="multipart/form-data" method="post" >

<input type="text" name="name" /><input type="file" name="file" />

<input type="submit" name='submit' value="提交" >

</form>

</body>

</html>

以上所述是小编给大家介绍的PHP上传图片类显示缩略图功能的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP上传图片类显示缩略图功能 https://www.kuaiidc.com/98004.html

相关文章

发表评论
暂无评论