2017-02-24 5 views
-1

내 안드로이드 응용 프로그램에서 사용자 업로드를 구현하려고합니다. 어떤 이유로 아래 코드가 이미지를 업로드 할 수없는 것 같습니다. 즉, 데이터베이스 항목이 완료되었지만 폴더에 이미지가 없습니다. 누군가가이 일을 도울 수 있습니까? 이 튜토리얼을 따라 갔다. https://www.simplifiedcoding.net/android-upload-image-to-server/ 데이터베이스 엔트리에서 사용 된 경로를 볼 수 있기 때문에 경로가 정확하다.안드로이드 애플 리케이션, 데이터베이스 항목 삽입에서 업로드하지만 이미지가 삽입되지 않았습니다

<?php 

require_once 'dbDetails.php'; 

$upload_path = 'usr_upload/'; 

$server_ip = gethostbyname(gethostname()); 

$upload_url = 'http://'.$server_ip.'/wallpaper/games/'.$upload_path; 

$response = array(); 

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    if(isset($_POST['name']) and isset($_FILES['image']['name'])){ 
     $con = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME) or die('unable to connect to database '); 
     $name = $_POST['name']; 

     $fileinfo = pathinfo($_FILES['image']['name']); 

     $extension = $fileinfo['extension']; 

     $file_url = $upload_url . getFileName() . '.'.$extension; 

     $file_path = $upload_path. getFileName(). '.'.$extension; 

     try{ 

      move_uploaded_file($_FILES['image']['tmp_name'], $file_path); 

      $sql = "INSERT INTO images (url, name) VALUES ('$file_url','$name')"; 
      if(mysqli_query($con,$sql)){ 
       $response['error'] = false; 
       $response['url'] = $file_url; 
       $response['name'] = $name; 
      } 

     }catch(Exception $e){ 
      $response['error'] = false; 
      $response['message'] = $e->getMessage(); 
     } 
     mysqli_close($con); 

    }else{ 
     $response['error'] = true; 
     $response['message'] = 'Please choose a file'; 
    } 

    echo json_encode($response); 
} 

function getFileName(){ 
    $con = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME) or die('Unable to connect'); 
    $sql = "SELECT max(id) as id FROM images"; 
    $result = mysqli_fetch_array(mysqli_query($con,$sql)); 
    mysqli_close($con); 
    if($result['id']==null){ 
     return 1; 
    }else{ 
     return ++$result['id']; 
    } 
} 

생성 된 오류 로그는 다음과 같습니다

PHP 경고 : 인 move_uploaded_file() : DOMAINNAME.COM/wallpaper/에 'usr_upload/3.JPG'에 '/ tmp를/phpSv15lI'을 이동할 수 없습니다 games/usr_upload/upload.php on line 28

+0

[https://www.w3schools.com/php/php_file_upload.asp]이 코드를 사용하여 파일을 업로드 할 수 있습니다. – Anonymous

+0

폴더에 쓸 수 없으므로 가능성이 높습니다. HTML 양식은 알 수 없으므로 실패하지 않는지 확인하십시오. –

+0

@ HK007 귀하가 보낸 링크에 404가 없습니다. –

답변

0

나는 스스로 해결 했으므로 PHP 파일에 지정된 링크가 잘못되었다.