[질문] php에서 파일업로드 방법?
어느분이 답변주신 사이트를 보고 따라해보았는데..
사용권한이 없다고 하는데 왜이런지 모르겠내여.
/usr/local/apache2/htdocs/upload/phpAjEe3Q
Warning: move_uploaded_file(avup.exe): failed to open stream: Permission denied in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Warning: move_uploaded_file(): Unable to move '/usr/local/apache2/htdocs/upload/phpAjEe3Q' to 'avup.exe' in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
/usr/local/apache2/htdocs/upload/phpw3ZnIR
Warning: move_uploaded_file(avseed.av): failed to open stream: Permission denied in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Warning: move_uploaded_file(): Unable to move '/usr/local/apache2/htdocs/upload/phpw3ZnIR' to 'avseed.av' in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
/usr/local/apache2/htdocs/upload/phpQrm8AS
Warning: move_uploaded_file(avleaf.av): failed to open stream: Permission denied in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Warning: move_uploaded_file(): Unable to move '/usr/local/apache2/htdocs/upload/phpQrm8AS' to 'avleaf.av' in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
/usr/local/apache2/htdocs/upload/phpQdS3tT
Warning: move_uploaded_file(avcure.dll): failed to open stream: Permission denied in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Warning: move_uploaded_file(): Unable to move '/usr/local/apache2/htdocs/upload/phpQdS3tT' to 'avcure.dll' in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
/usr/local/apache2/htdocs/upload/phpeGvinU
Warning: move_uploaded_file(avbranch.av): failed to open stream: Permission denied in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Warning: move_uploaded_file(): Unable to move '/usr/local/apache2/htdocs/upload/phpeGvinU' to 'avbranch.av' in /usr/local/apache2/htdocs/bbs/bbsControl.php on line 32
Array
그리고 /usr/local/apache2/htdocs/upload의 디렉토리 권한은
chmod 777 upload로 모든권한을 주었습니다.
해당되는 것인지는 모르겠지만[quote]allan666 at
해당되는 것인지는 모르겠지만
이런게 있네요.
http://home.postech.ac.kr/~sodomau
윗 분이 인용한데로라면,업로드 디렉토리를 /tmp 로 수정하시면 되겠
윗 분이 인용한데로라면,
업로드 디렉토리를 /tmp 로 수정하시면 되겠네요.
php.ini 파일에서 다음처럼 수정하시면 됩니다.
php.ini 는 {php 설치 디렉토리}/lib 정도에 있을거예요.
php에서 파일업로드 방법
답변 감사드립니다.
그리고 위에 경로는 Error내용을 보시면 아시겠지만.
upload_tmp_dir = /usr/local/apache2/htdocs/upload
로 변경을 해준상태이구여.
php source는 아래와 같습니다.
<?
include "../common/dbconnect.inc";
$bbsTitle = $_POST['bbsTitle'];
$bbsContext = $_POST['bbsContext'];
$bbsWrite = $_POST['bbsWrite'];
$query = "insert into bbsBoard(bbsTitle,bbsContext,bbsWrite) "
." values('".$bbsTitle."','".$bbsContex."','".$bbsWrite."') ";
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
/*
echo "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "파일이 존재하고, 성공적으로 업로드 되었습니다.";
echo "추가 디버깅 정보입니다:\n";
print_r($_FILES);
} else {
echo "파일 업로드 공격의 가능성이 있습니다! 디버깅 정보입니다:\n";
print_r($_FILES);
}
echo "</pre>";
*/
for ($i=0;$i<5;$i++) {
if ($_FILES["userfile"]['tmp_name'][$i]) {
echo $_FILES["userfile"]['tmp_name'][$i];
move_uploaded_file( $_FILES["userfile"]["tmp_name"][$i],$_FILES["userfile"]["name"][$i]);
}
}
echo $_FILES['userfile']['error'];
/*
if($connect)
{
//echo" DB OK";
$result = mysql_query($query,$connect) or die(mysql_error());
echo $result;
?-->
<script >
<!--
location.href = "http://localhost/bbs/board.php";
//-->
</script>
<--?
//Headers("Location: http://localhost/bbs/board.php");
}
*/
?>
Linux 를 배워봅시다.
upload_tmp_dir = /usr/local/apache2/htdo
upload_tmp_dir = /usr/local/apache2/htdocs/upload
이 부분을
upload_tmp_dir = /tmp
이렇게 수정하면 잘 될 듯 합니다.
somasadu 님이 올리신 글을 보면,
아파치 user 는 /tmp 이외의 디렉토리에 쓰기 권한을 갖을 수 없다고 되어 있네요.
[quote="techneer"]upload_tmp_dir = /usr/
벌써 해봤는데여 그리고 접근권한은 chmod 777 /tmp로 줘구여
똑같은디여 !
Linux 를 배워봅시다.
댓글 달기