카페24로 서버 데이터베이스를 이용하고 있습니다.
php웹서버를 통해서 안드로이드 앱에서 사진을 업로드 하는 기능을 만들려고 하는데요
커넥트 정보랑 파일 업로드 경로를 잘 모르겠네요... 경로 계속 바꿔보고 찾아봤는데... ㅠ 사실 경로 문제인지도 잘 모르겠지만..
된다는 분들이 있는걸 보면 코드에는 문제가 없을 거 같은데 경로와 제 DB정보 입력이 정확한지 잘 모르겠습니다...
uploads 폴더에 파일이 업로드 되는되요 실제로 파일을 넣어서 경로를 보니 AndroidUploadImage 폴더를 건너 뛰고
http://ggavi2000.cafe24.come/uploads/tttt.png 이런 경로로 나오더라구요. 이게 실제 경로인거 같은데 이걸 경로로 잡아야하나요?
이것저것 경우의 수 생각 나는건 다 해본거 같은데... 경로를 잘 모르겠네요... 다른 파일 경로가 아니고 다른 문제인가..
https://www.simplifiedcoding.net/android-upload-image-to-server/ 의 예제를 실험 중입니다...
dbDetails.php
define('HOST','localhost');
define('USER','mysql아이디');
define('PASS','mysql비밀번호');
define('DB','테이블이 있는 DB이름');
upload.php
//importing dbDetails file
require_once 'dbDetails.php';
//this is our upload folder
$upload_path = 'uploads/';
//Getting the server ip
$server_ip = gethostbyname(gethostname());
//creating the upload url
$upload_url = 'http://'.$server_ip.'/AndroidImageUpload/'.$upload_path;
//response array
$response = array();
if($_SERVER['REQUEST_METHOD']=='POST'){
//checking the required parameters from the request
if(isset($_POST['name']) and isset($_FILES['image']['name'])){
//connecting to the database
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect...');
아래 코드를 작성하셔서 페이지 실행하면, 해당 페이지 경로 기준으로 절대 경로가 출력됩니다.
<?php
echo realpath(".");
그외 파일 경로에 쓰기가 안되는 경우에는 쓰기권한을 체크하여 보시기 바랍니다.
방금 해보았습니다 ㅎ
기본 www 파일 안에 만든 파일에서 php를 업로드하고 실행해보니 안되는 상황이 네요 음...
권한 도 읽기 쓰기 실행 3가지다 체크되어 있는데도 안되구
안되서 php파일도 체크 해봤는데 그래도 실행되질 않네요 ㅋ 흠 방법을 뭐가 문제지...
답변 갑사합니다!
포스트맨으로 이미지 업로드가 잘 되는지 확인하는 과정이 있는것 같은데, 간단하게 웹폼을 만드셔서 이미지가 정상적으로 업로드가 되는지 먼저 체크해보시는게 어떨까 하네요.
print_r($_FILES); 로 파일 업로드가 정상적으로 진행되면 파일배열에 내용이 출력될 겁니다.
그리고 추가적으로 php환경 기본설정은 2메가바이트 이상의 파일 업로드가 제한되어 있으므로, 이부분 쿼터도 체크해보세요..
php.ini
upload_max_filesize = 2M
post_max_size = 8M
max_execution_time = 30
이런 옵션들이 있습니다.
말씀하신대로 print_r($_FILES); 을 해봤습니다!
일단 경로를 추가된 폴더로 쓰면 안되는거 같습니다 ㅠ
$upload_path = 'www/';
//Getting the server ip
$server_ip = gethostbyname(gethostname());
//creating the upload url
$upload_url = 'http://'.$server_ip.$upload_path;
www 기본 폴더로 지정하니 500에러는 사라졌습니다!
이후에 print_r($_FILES);을 찍으니 에러 0이 나와서 찾아보니
UPLOAD_ERR_OK
Value: 0; There is no error, the file uploaded with success. 라더군요!
[]Array
(
[image] => Array
(
[name] => tttt.png
[type] => image/png
[tmp_name] => /tmp/php7s7CiS
[error] => 0
[size] => 184234
감사합니다!
실제 카페24DB랑 FTP에 저장되지는 않지만... 좀 더 연구해봐야겟네요! ㅎ
원하는 위치로 옮기는 역할을 합니다.
move_uploaded_file($_FILES['image']['tmp_name'],$file_path);
이때 옮겨지는 대상 경로인 $file_path 디렉토리 경로 확인 및 웹서버 쓰기 권한을 체크하셔야 하고요.
권한은 others도 쓰기 권한을 주었는지 꼭 확인해보세여.
말씀하신 권한 다 체크해서 사용가능 하도록 해줫지만 안되는 걸 보면 경로나
말씀하신 move_uploaded_file 이후에 있는 if문에 걸리고 있는데 이부분이 문제 같네요
갑갑하네요 정말 이거 ㅠ
큰 도움 정말 감사합니다 ㅠ
위에는 업로드 이미지고
코드는 이미지 업로드고 .
소스를 $upload_url = 'http://'.$server_ip.'/AndroidUploadImage/'.$upload_path; 로 고치세요
좋은 지적 감사합니다! 코드 되돌려서 해보았으나 500에러가 뜨는걸 보니 조금 다른 문제도 같이 포함되어 있는거 같아요 ㅠ
감사합니다!
이틀동안 이렇게 진전이 없을 줄이야 생각도 못했네요 자괴감...
//
아 php를 .www폴더에서 실행시키니 sql에 커넥트 되지 않았다는 말이 뜨네요 ㄷ 체크해보겠습니다 감사합니다!