백엔드 개발 PHP 튜토리얼 강력한 PHP 파일 업로드 클래스

강력한 PHP 파일 업로드 클래스

Dec 22, 2016 pm 03:45 PM
php 파일 업로드

본 글의 예시는 참고용으로 매우 강력한 기능을 갖춘 PHP 파일 업로드 클래스를 공유하고 있습니다.

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

<?PHP

/*

*文件上传类

**/

class upfile{

private $file_size;//上传源文件大小

private $file_tem;//上传文件临时储存名

private $file_name;//上传文件名

private $file_type;//上传文件类型

private $file_max_size=2000000;//允许文件上传最大

private $file_folder="uploadFiles";//文件上传路径

private $over_write=false;//是否覆盖同名文件

//允许上传图片的类型

private $allow_type=array(&#39;image/jpg&#39;,&#39;image/jpeg&#39;,&#39;image/png&#39;,&#39;image/pjpeg&#39;,&#39;image/gif&#39;,&#39;image/bmp&#39;,&#39;image/x-png&#39;);

  

  

//构造类,file:上传文件域

function __construct($file){

$this->file_name=$_FILES[$file][&#39;name&#39;];//客户端原文件名

$this->file_type=$_FILES[$file][&#39;type&#39;];//文件类型

$this->file_tem=$_FILES[$file][&#39;tmp_name&#39;];//储存的临时文件名,一般是系统默认

$this->file_size=$_FILES[$file][&#39;size&#39;];//文件大小

}

  

//如果文件夹不存在则创建文件夹

function creatFolder($f_path){

if(!file_exists($f_path)){

mkdir($f_path,0777);

}

}

  

//判断文件是不是超过上传限制

function is_big(){

if($this->file_size>$this->file_max_size){

echo "文件太大,超过限制!";

exit;

}

}

  

//检查文件类型

function check_type(){

if(!in_array($this->file_type,$this->allow_type)){

echo "上传文件类型不正确";

exit;

}

}

  

//检查文件是否存在

function check_file_name(){

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

echo "上传文件不存在";

exit;

}         

}

  

//检查是否有同名文件,是否覆盖

function check_same_file($filename){

if(file_exists($filename)&&$this->over_write!=true){

echo "同名文件已存在!";

exit;

}   

}

  

//移动文件

function move_file($filename,$destination){

if(!move_uploaded_file($filename,$destination)){

echo "移动文件出错";

exit;

}

}

  

//检查文件是否是通过 HTTP POST 上传的

function is_upload_file(){

if(!is_uploaded_file($this->file_tem)){

echo "文件不存在";

exit;

}

}

  

//获得文件后缀名

function getext(){

$ext=$this->file_name;

$extstr=explode(&#39;.&#39;,$ext);

$count=count($extstr)-1;

return $extstr[$count];

}

  

//新建文件名

function set_name(){     

return time().".".$this->getext();

}

  

//建立以年月日为文件夹名

function creat_mulu(){

$this->creatFolder("../../upload/".date(Ymd)); 

return "upload/".date(Ymd);

}

  

//生成的文件名

function files_name(){

$name=$this->set_name();

$folder=$this->creat_mulu();

return "../../".$folder."/".$name;

}

  

//上传文件

function upload_file(){

$f_name=$this->files_name();

move_uploaded_file($this->file_tem,$f_name);

return $f_name;

  

//生成缩略图

//最大宽:120,高:120

function create_simg($img_w,$img_h){

$name=$this->set_name();

$folder=$this->creat_mulu();

$new_name="../../".$folder."/s_".$name;     

$imgsize=getimagesize($this->files_name());

  

switch ($imgsize[2]){

case 1:

if(!function_exists("imagecreatefromgif")){

echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回";

exit();

}

$im = imagecreatefromgif($this->files_name());

break;

case 2:

if(!function_exists("imagecreatefromjpeg")){

echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回";

exit();

}

$im = imagecreatefromjpeg($this->files_name());

break;

case 3:

$im = imagecreatefrompng($this->files_name());

break;

case 4:

$im = imagecreatefromwbmp($this->files_name());

break;

default:

die("is not filetype right");

exit;

}

  

$src_w=imagesx($im);//获得图像宽度

$src_h=imagesy($im);//获得图像高度

$new_wh=($img_w/$img_h);//新图像宽与高的比值

$src_wh=($src_w/$src_h);//原图像宽与高的比值

if($new_wh<=$src_wh){

$f_w=$img_w;

$f_h=$f_w*($src_h/$src_w);

}else{

$f_h=$img_h;

$f_w=$f_h*($src_w/$src_h);

}

if($src_w>$img_w||$src_h>$img_h){     

if(function_exists("imagecreatetruecolor")){//检查函数是否已定义

$new_img=imagecreatetruecolor($f_w,$f_h);

if($new_img){

imagecopyresampled($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);//重采样拷贝部分图像并调整大小

}else{

$new_img=imagecreate($f_w,$f_h);

imagecopyresized($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);

}

}else{

$$new_img=imagecreate($f_w,$f_h);

imagecopyresized($new_img,$im,0,0,0,0,$f_w,$f_h,$src_w,$src_h);

}

if(function_exists(&#39;imagejpeg&#39;)){

imagejpeg($new_img,$new_name);

}else{

imagepng($new_img,$new_name);

}

imagedestroy($new_img);

}

//imagedestroy($new_img);

return $new_name;

}   

  

}

?>

로그인 후 복사

위 내용이 본 글의 전체 내용이기를 바랍니다. 여러분의 연구에 도움이 될 것입니다. 또한 모든 분들이 PHP 중국어 웹사이트를 지원해 주시길 바랍니다.

더욱 강력한 PHP 파일 업로드 관련 글을 보시려면 PHP 중국어 홈페이지를 주목해주세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 파일 업로드 튜토리얼: HTML 양식을 사용하여 파일을 업로드하는 방법 PHP 파일 업로드 튜토리얼: HTML 양식을 사용하여 파일을 업로드하는 방법 Jun 11, 2023 am 08:10 AM

PHP 파일 업로드 튜토리얼: HTML 양식을 사용하여 파일을 업로드하는 방법 웹사이트 개발 과정에서 파일 업로드 기능은 매우 일반적인 요구 사항입니다. 널리 사용되는 서버 스크립팅 언어인 PHP는 파일 업로드 기능을 매우 잘 구현할 수 있습니다. 이 기사에서는 HTML 양식을 사용하여 파일 업로드를 완료하는 방법을 자세히 소개합니다. 1. HTML 양식 먼저 HTML 양식을 사용하여 파일 업로드 페이지를 만들어야 합니다. HTML 양식에서 enctype 속성은 "multipart/form-"으로 설정되어야 합니다.

PHP에서 파일 업로드를 처리하는 방법은 무엇입니까? PHP에서 파일 업로드를 처리하는 방법은 무엇입니까? May 11, 2023 pm 10:31 PM

인터넷 기술의 지속적인 발전으로 인해 파일 업로드 기능은 많은 웹사이트에서 필수적인 부분이 되었습니다. PHP 언어에서는 일부 클래스 라이브러리와 함수를 통해 파일 업로드를 처리할 수 있습니다. 이 기사에서는 PHP의 파일 업로드 처리 방법에 중점을 둘 것입니다. 1. 양식 설정 HTML 양식에서 파일 업로드를 지원하려면 enctype 속성을 "multipart/form-data"로 설정해야 합니다. 코드는 다음과 같습니다: &lt;formaction="upload.

PHP 파일 업로드 인코딩 오류 처리 및 해당 오류 프롬프트 생성에 대한 팁 PHP 파일 업로드 인코딩 오류 처리 및 해당 오류 프롬프트 생성에 대한 팁 Aug 06, 2023 am 09:51 AM

PHP 파일 업로드 인코딩 오류 처리 및 해당 오류 프롬프트 생성에 대한 팁 파일 업로드는 웹 애플리케이션을 개발할 때 매우 일반적인 요구 사항입니다. PHP 파일 업로드를 처리할 때 인코딩 오류가 자주 발생합니다. 이 기사에서는 PHP 파일 업로드 인코딩 오류를 처리하고 해당 오류 프롬프트를 생성하는 몇 가지 기술을 소개합니다. PHP에서는 $_FILES 전역 변수를 통해 파일 업로드에 액세스합니다. $_FILES를 통해 업로드된 파일의 이름, 크기, 임시 파일 경로 및 기타 정보를 얻을 수 있습니다.

PHP 파일 업로드 보안 가이드: $_FILES 배열을 사용하여 업로드된 파일 정보를 얻는 방법 PHP 파일 업로드 보안 가이드: $_FILES 배열을 사용하여 업로드된 파일 정보를 얻는 방법 Jul 30, 2023 pm 06:53 PM

PHP 파일 업로드 보안 가이드: $_FILES 배열을 사용하여 업로드된 파일 정보를 얻는 방법 요약: 파일 업로드는 웹 개발의 일반적인 기능 중 하나입니다. 그러나 잘못된 파일 업로드 구현으로 인해 보안 취약점이 발생하여 애플리케이션에 잠재적인 위험이 발생할 수 있습니다. 이 기사에서는 PHP의 $_FILES 배열을 사용하여 업로드된 파일 정보를 안전하게 얻는 방법을 소개하고 이를 몇 가지 코드 예제와 결합하여 독자의 이해를 돕습니다. PHP에서 적절한 파일 업로드 제한을 설정하려면 php.ini 파일을 사용하여 다음을 수행할 수 있습니다.

PHP 파일 업로드 방법 및 자주 묻는 질문 요약 PHP 파일 업로드 방법 및 자주 묻는 질문 요약 Jun 08, 2023 pm 09:27 PM

PHP 파일 업로드 방법 및 자주 묻는 질문 요약 파일 업로드는 웹 개발의 일반적인 기능 중 하나이며 사용자가 아바타, 파일 등을 업로드하는 데 사용할 수 있습니다. PHP는 편리한 파일 업로드 처리 방법을 제공합니다. 이 기사에서는 PHP 파일 업로드 방법과 일반적인 문제에 대한 요약을 자세히 소개합니다. 1. PHP 파일 업로드 방법 HTML 양식 파일 업로드를 구현하려면 HTML 양식을 사용해야 합니다. 여기서 enctype 속성은 "multipart/form-data"로 설정되어야 합니다.

PHP를 통해 간단한 파일 업로드 및 다운로드 기능을 작성하는 방법 PHP를 통해 간단한 파일 업로드 및 다운로드 기능을 작성하는 방법 Sep 24, 2023 am 08:12 AM

PHP를 통해 간단한 파일 업로드 및 다운로드 기능을 작성하는 방법 인터넷 기술이 발전하면서 파일 업로드 및 다운로드 기능은 많은 웹사이트에서 꼭 필요한 기능 중 하나가 되었습니다. 간단한 파일 업로드 및 다운로드 기능을 작성함으로써 사용자는 쉽게 파일을 업로드 및 다운로드할 수 있으며 사용자 경험을 향상시킬 수 있습니다. 이 기사에서는 PHP를 사용하여 간단한 파일 업로드 및 다운로드 기능을 작성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 파일 업로드 기능 구현 먼저 HTML 페이지에 사용자가 파일을 업로드할 수 있는 양식을 만듭니다.

PHP를 사용하여 간단한 온라인 파일 업로드 및 다운로드 시스템을 구현하는 방법 PHP를 사용하여 간단한 온라인 파일 업로드 및 다운로드 시스템을 구현하는 방법 Sep 24, 2023 pm 03:13 PM

PHP를 사용하여 간단한 온라인 파일 업로드 및 다운로드 시스템을 구현하려면 특정 코드 예제가 필요합니다. 인터넷 시대에는 파일 전송 및 공유가 매우 일반적입니다. 개인이든 기업이든 파일 업로드와 다운로드를 편리하고 빠르게 처리해야 합니다. 강력한 서버측 스크립팅 언어인 PHP는 파일 업로드 및 다운로드 기능을 쉽게 구현할 수 있는 풍부한 기능과 도구를 제공합니다. 이 기사에서는 PHP를 사용하여 간단한 온라인 파일 업로드 및 다운로드 시스템을 구현하는 방법을 소개하고 자세한 코드 예제를 제공합니다.

PHP를 사용하여 CMS에서 파일 업로드 및 다운로드 모듈을 개발하는 방법 PHP를 사용하여 CMS에서 파일 업로드 및 다운로드 모듈을 개발하는 방법 Jun 21, 2023 pm 12:13 PM

인터넷의 지속적인 발전으로 인해 파일 업로드 및 다운로드 기능이 필요한 웹사이트가 점점 더 많아지고 있습니다. 오픈 소스 서버 측 스크립팅 언어인 PHP는 광범위한 애플리케이션 시나리오와 업계 인지도를 보유하고 있습니다. CMS(콘텐츠 관리 시스템)는 일반적인 웹사이트 유형 중 하나입니다. 이 기사에서는 PHP를 사용하여 CMS에서 파일 업로드 및 다운로드 모듈을 개발하는 방법에 대해 설명합니다. 1. 파일 업로드 모듈 1. 파일 업로드의 기본 원리 파일 업로드의 기본 원리는 클라이언트에서 파일을 전송하는 것입니다.

See all articles