php는 서버쪽에서 실행되는 스크립트다. 따라서 서버가 실행될 수 있는 환경이 만들어져 있어야 한다. 이를 위해 Bitnami라는 툴을 설치하여 환경을 구성해 준다.
Bitnami 툴은 Apache, Mysql, Php 등의 서버에서 필요한 요소를 다 가지고 있어 이들의 약자로 AMP라 부른다.
설치 후에는 localhost의 기본 폴더의 위치가 어디인지 확인해야 한다. 이 위치에 기본 페이지인 index.html가 있다.
Windows에서는
~설치위치/mampstack-5.6.26-1/apache2/htdocs
이고, mac에서는
/Applications/mampstack-5.6.26-1/apache2/htdocs
이다.
서버 실행은 Mac에서는
cmd+space bar를 눌러 manager-osx을 찾아 런한다. 툴의 Manager-server 탭을 선택하고 MySQL db와 Apache web server를 시작한다.
테스트를 위해 localhost에 php_test 폴더를 만들고 아래의 demo3.html 파일과 몇 개의 관련 파일을 만들었다. mac에서 접속 시에는 브라우저의 주소창에
localhost:8080/php_test/demo3.html
로 접속하면 된다.
파일이 3개가 필요한데 아래와 같다. 특히 php파일은 demo3.html과 같은 폴더 위치에 있어야 한다. php파일의 실행은 주소창에
localhost:8080/php_test/receivetxt.php
이지만 단독으로 실행하려면 코드 내에서 echo “hello php”로 값을 출력해 보면 된다.
receivetxt.php (업로드 파일을 받아 처리할 서버쪽 스크립트 파일)
—————————
<?php
echo file_get_contents($_FILES["image"]["name"]);
$output = 'outputtxt.txt';
file_put_contents($\$$output, file_get_contents($\$$_FILES["image"]["name"]));
?>
내용을 화면에 출력하고 파일을 저장한다. txt파일은 저장되었지만 이미지파일은 안됨.
sendtxt.txt (전송될 파일)
—————————
vwxyz
demo3.html (클라이언트 파일)
—————————
<html>
<head></head>
<body>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<input type="file" id="image_to_upload"/>
<p>filename : <span id="filename"></span></p>
<p>contents : <span id="contents"></span></p>
<script>
formdata = new FormData();
$("#image_to_upload").on("change", function() {
var file = this.files[0];
$('#filename').text(file.name); // 업로드한 파일 이름 화면 표시
if (formdata) {
formdata.append("image", file);
$.ajax({
url: "./receivetxt.php", // 같은 폴더 위치. php가 파일을 받음.
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function(data) {
// callback함수이고 서버가 php의 실행 에코를 data 인자로 넘겨줌
$('#filename').text(data); // 에코 data 화면 표시
}
});
}
});
</script>
</body>
</html>
수행 작업은 client에서 파일 sendtxt.txt를 업로드해서 server로 보낸다. 서버의 receivetxt.php는 이 파일을 받아 내용을 화면에 echo한다. 만일 통신이 성공하면 이 echo는 다시 client로 전송되어 html 내에 표시된다. 비동기 통신에 관련된 내용은 여기에서 참고한다.
References
[1] 생활코딩, php
[2] 생활코딩, Ajax
https://www.dbanma.org/
답글삭제https://www.dbanma.com/
단밤출장샵
답글삭제서울출장샵