> 백엔드 개발 > PHP 문제 > 업로드 기능을 구현하는 PHP의 기능은 무엇입니까?

업로드 기능을 구현하는 PHP의 기능은 무엇입니까?

藏色散人
풀어 주다: 2023-03-14 16:44:02
원래의
3968명이 탐색했습니다.

업로드 기능을 구현하기 위해 PHP에서 사용하는 기능은 다음과 같습니다. 1. move_uploaded_file 기능 3. 확장 기능 5. 카운트 기능;

업로드 기능을 구현하는 PHP의 기능은 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

업로드 기능을 구현하기 위한 PHP의 기능은 무엇인가요?

파일 업로드 기능을 구현한 PHP의 상세 코드 예시

파일을 업로드하지 않고는 할 수 없습니다. move_uploaded_file기능 file에서 지정한 파일이 합법적인 업로드 파일(즉, http post upload를 통해 업로드된 파일)인지 확인하고 확인하는 기능입니다. PHP 튜토리얼의 메커니즘). 파일이 합법적이면 newloc에 의해 지정된 파일로 이동됩니다.

파일이 합법적으로 업로드된 파일이 아닌 경우 아무런 작업도 수행되지 않으며 move_uploaded_file()은 false를 반환합니다.

파일이 유효한 업로드 파일이지만 어떤 이유로 이동할 수 없는 경우 아무 작업도 발생하지 않으며 move_uploaded_file()이 false를 반환하고 경고가 발생합니다.

먼저 업로드 양식의 설정을 살펴보겠습니다

<html>
<head>
<title>a simple file upload form</title>
</head>
<body>
<form enctype="multipart/form-data"
   action="<?print $_server[&#39;php_self&#39;]?>" method="post">
<p>
<input type="hidden" name="max_file_size" value="102400" />
<input type="file" name="fupload" /><br/>
<input type="submit" value="upload!" />
</p>
</form>
</body>
</html>
로그인 후 복사

기본 설정에서 설정한 최대 업로드 파일은 102400바이트를 초과할 수 없습니다.

다음 코드에 따라 PHP에서 파일을 업로드하는 것은 매우 간단합니다

if ( $_files[&#39;fupload&#39;][&#39;type&#39;] == "image/gif" ) {
         $source = $_files[&#39;fupload&#39;][&#39;tmp_name&#39;];
         $target = "upload/".$_files[&#39;fupload&#39;][&#39;name&#39;];
         move_uploaded_file( $source, $target );// or die ("couldn&#39;t copy");
         $size = getimagesize( $target );
         $imgstr = "<p><img width="$size[0]" height="$size[1]" ";
         $imgstr .= "src="$target" alt="uploaded image" /></p>";
         print $imgstr;
     }
로그인 후 복사

그렇습니다 , 아래에 예제가 요약되어 있습니다.

php

<html>
<form enctype="multipart/form-data" action="" method="post">
<input type="hidden" name="max_file_size" value="6000000" /> <!--设置允许提交表单的最大字节数-->
文件上传: <input name="file" type="file" />
<input type="submit" value="上传"/>
</form>
</html>
로그인 후 복사

<?
//处理程序
function extend($file_name) //定义获取文件的扩展名函数
{$extend =explode("." , $file_name);
$va=count($extend)-1;
return strtolower($extend[$va]);}
$dirname="../";//是否启用上一层路径,格式为:$dirname="../";或$dirname="http://www.3ppt.com/";等等与$dir组合使用,注意不要溢出根路径
$dir=&#39;upload/aa/bb&#39;;//设定上传目录,与上面的$dirname组合
$file=$_files[&#39;file&#39;];//从文件域表单获取文件
$filename=$file[&#39;name&#39;] ;//获取文件全名
$c_filesize=$file[&#39;size&#39;] ;//获取本地的文件大小
$extendname=extend($filename);//获取文件扩展名
if($c_filesize>200000000000)die("文件太大");//限制上传文件大小, 单位字节
//if($extendname!="jpg")die("只允许上传jpg格式的图片");//限制上传文件格式,去掉语句开头的两斜杠生效
if(!file_exists($dir));//检查目录文件夹是否存在,不存在则建立新文件夹
{
$v=split (&#39;[/.-]&#39;, $dir);
for ( $i=0 ; $i <count($v) ; $i++)
{$dirname=$dirname.$v[$i];
if(!file_exists($dirname))mkdir($dirname);
$dirname=$dirname."/";}
} //目录创建完毕
?>
로그인 후 복사
<?
$dest=$dirname.date("ymdhis", time()).rand(100000,999999).".".$extendname; //设置文件名为日期加上从100000到999999的随机数和扩展名
if(file_exists($dest))die("该文件已经存在");
if(move_uploaded_file($file[&#39;tmp_name&#39;],$dest)) //调用文件上传函数
{$s_filesize=filesize($dest);//获取服务器端的文件大小
echo "文件上传成功,<a href=".$dest.">查看文件地址</a>";
echo "<br>本地文件名:".$filename;
echo "<br>远端文件名:".$dest;
echo "<br>大 小:".ceil($s_filesize/1024)." kb";
echo "<br>扩展名:".$extendname;
echo "<br>大 小:".$c_filesize." byte";}
else
{echo "还未进行文件上传";}
?>
로그인 후 복사

파일 업로드 오류 코드 요약

upload_err_ok 오류가 없습니다.

upload_err_ini_size 업로드된 파일이 지정된 파일에 존재하는 최고 값을 초과합니다.

upload_err_form_size는 max_file_size에 지정된 최대값을 초과하는 업로드된 파일에 대한 숨겨진 위젯입니다.

upload_err_partial 파일 업로드가 취소되어 파일의 일부만 업로드되었습니다.

upload_err_nofile 업로드된 파일이 없습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 업로드 기능을 구현하는 PHP의 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿