웹사이트: http://blog.sina.com.cn/s/blog_976934420101cpnz.html
추가 설명 없이 먼저 코드를 게시하겠습니다.
$filename = $_FILES['file']['name'];
$file = "../uploads/".$filename;
$file=iconv("UTF-8","GB2312//IGNORE", $file);
if (!move_uploaded_file ($_FILES['file']['tmp_name'],$file)){
echo "";
}
else{
$file=iconv("GB2312", "UTF-8/ /IGNORE", $file);
echo "<script>alert('업로드 성공, 파일 경로는 "+.<span>$file.</span>+"!' );</ script>";</p>
<p>exit();</p>
<p>}</p>
<p>위는 제가 문제를 해결하기 위해 사용한 코드입니다. </p> <p>프로젝트가 <strong>GB2312</strong>인 경우 인코딩에는 이 문제가 없어야 합니다. </p>
<p><span>$file=iconv("UTF-8","<strong>GB2312</strong>/ /IGNORE", $ file); 주로 파일 경로의 인코딩을 변환하는데 사용되며, 인코딩이 변환되지 않은 경우 파일 경로나 파일 이름에 공백이 포함되어 있으면 업로드가 실패하고, 공백이 있으면 글자가 깨져서 나타납니다. 한자; </span></p>
<p><span>업로드 후 경로와 이름의 인코딩을 다시 변환해야 합니다. 프로젝트가 <strong>GB2312은 잘못된 문자로 표시됩니다. </strong></span></p> 광산 코드: <p></p> if($upfile['error']==UPLOAD_ERR_OK){<p> //확장자 .txt 가져오기 .rar, etc.<br> // $extName=strtolower(end(explode(' .',$upfile['name'])));<br> //접미사 $filename=$upfile['name'];<br> $filename=iconv("UTF- 8","<br>GB2312<br>//IGNORE",$filename);<strong>// $ filename=iconv("</strong>GB2312<br>","UTF-8",$filename) <strong> $dest="../doc/secure/".$filename;</strong>// $dest =iconv("UTF-8","<br>GB2312<br>//IGNORE", $dest );<strong> //doc 디렉토리로 이동</strong> //한자가 깨져서 업로드가 실패할 수 있습니다. <br> if(!move_uploaded_file($upfile['tmp_name'],$dest)){<br> echo " <script 언어='javascript'>window.alert('파일에 공백이 없는지 확인하세요. <br>업로드된 파일<br>의 이름! ');</script>"; }else{ $filename=iconv("
GB2312
","UTF-8//IGNORE",$filename); $path="doc/secure/".$filename; //양식 매개변수 가져오기 및 데이터베이스에 저장
$sql="보안(secure_id,path,PostTime,name,Source)
값에 삽입 (' ','$path',NOW(),'$_POST[제목]','$_SESSION[사용자 ID]')";
mysql_query($sql);
}
}
위 내용은 move_uploaded_file 파일 업로드 실패에 대한 내용입니다. 업로드 후 파일 이름이 일부 깨졌을 때 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.