마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹뷰에서 파일 업로드 할 경우에 문제가 생깁니다!!!ㅠㅠ [closed]

0 추천

제가 지금 파일 업로드

openFileChooser 매소드를 사용해서 파일 업로드 까지는 시켰습니다.

근데 여기서 문제점이 발생했는데요 ... ㅠ

웹에서 올린 파일들은 업로드 시키면 서버에 지정된 경로에 들어가서 파일이 저장이 되는데...

앱에서 올린 파일의 내용은 DB에만 들어가고 ... 서버에 지정된 경로에 파일 저장이 안됩니다....

왜그럴까요? 저장하는 경로를 어디선가 지정해 줘야 되는걸 까요?

다운받으려고 했는데 보니까 파일 저장이 안되있더라고요 .. 업로드는 완성했는 줄 알았는데 ..

파일이 서버에 안올라가 지네요 .. 도와주세요 ..

파일 저장하는 php 파일 코딩입니다.

 <?php
 $DBhost = 'localhost';
 $DBuser = 'testtest';
 $DBpw = 'testtest!!';
 $DBName = 'testtest';
 //DB연결
 mysql_connect($DBhost, $DBuser, $DBpw);
 mysql_select_db($DBName);
 
 $title=$_POST['title'];
 $conts=$_POST['conts'];
 $id=$_COOKIE["cook"];
 $filename=($_FILES[userfile][name]);

 ini_set("display_errors", "1");
 $uploaddir = './files/';
 $uploadfile = $uploaddir . basename($_FILES[userfile][name]);

 if(move_uploaded_file($_FILES[userfile][tmp_name], $uploadfile)){

 }else{

 }
 $sql = "insert freeboard set
 writerID='$id', 
 title='$title', 
 contents='$conts',
 filename='$filename',
 regdate=now()";

 mysql_query($sql)or die(mysql_error());
 ?>

 <script>
    alert("글작성 완료!");
    location.href = 'showBoard.php';
 </script>

여기는 안드로이드 코딩이고요

        public void openFileChooser(ValueCallback<Uri> uploadMsg) {
            Log.d(TAG, "3.0 <");
            openFileChooser(uploadMsg, "");
        }

        // For Android 3.0+
        public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
            Log.d(TAG, "3.0+");
            filePathCallbackNormal = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*"); // vidio/* audia/*
            startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_NORMAL_REQ_CODE);
            // 호출 당하는 액티비티로 부터 데이터를 넘겨 받기 위해 사용  (인텐트, 여러개 값을 넘겨줬을때 어떤 액티비티를 호출했는지 알기위한 구분 [ex)1,2])
        }

        // For Android 4.1+
        public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
            Log.d(TAG, "4.1+");
            openFileChooser(uploadMsg, acceptType);
        }

        // For Android 5.0+
        public boolean onShowFileChooser(
                WebView webView, ValueCallback<Uri[]> filePathCallback,
                WebChromeClient.FileChooserParams fileChooserParams) {
            Log.d(TAG, "5.0+");
            if (filePathCallbackLollipop != null) {
                filePathCallbackLollipop.onReceiveValue(null);
                filePathCallbackLollipop = null;
            }
            filePathCallbackLollipop = filePathCallback;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_LOLLIPOP_REQ_CODE);

            return true;
        }
    });

혹시 sdcard 지정 해주시던데 안드로이드 코드에서 ... 그걸 안해줘서 그런가요 ...?

질문을 종료한 이유: 찾앗습니다!답을
안드로이드꺅 (210 포인트) 님이 2016년 7월 28일 질문
안드로이드꺅님이 2016년 7월 28일 closed
답이 무엇인가요????????????
...