2012-06-15 5 views
-1

나는 안드로이드에서 잠시 동안 앱을 개발 해왔다. 이제이 앱으로 서버에 이미지를 업로드해야한다. 문제는 백엔드 (서버 측)에서이 작업을 수행하는 방법을 모르기 때문입니다. httpmime 라이브러리를 통해 이미지를 보내고 multipart을 사용하는 방법에 대해 많이 읽었지만 이미지를받는 서버 측 서비스에 대해서는별로 읽지 않았습니다.안드로이드 - 앱에서 IIS 서버로 이미지 업로드

MVC3 또는 WCF와 같은 것을 사용해야합니다. 여기에있는 서버가 IIS이고이 모델로 수행하는 방법을 많이 알지 못했기 때문입니다. 그래서이 튜토리얼이나 가이드를 통해이 모델을 어떻게 구현하는지에 대한 안내가 필요합니다. 어떤 도움도 정말 감사 할 것입니다.

+0

을 게시 할 수 있습니다. ASP.NET MVC 3 및 ​​WCF Data Services에 대해 이야기하고 있습니다. 적어도 당신의 질문에 그 태그를 사용했습니다. 다음 중 클라이언트 (Android) 애플리케이션에서 이미지를 받아야하는 것은 어느 것입니까? 서버에서이 이미지가 수신되면 무엇을하고 싶습니까? ASP.NET MVC 3 응용 프로그램과 WCF Data Service 간의 관계는 무엇입니까? –

+0

글쎄, 내가 그 중 하나를 사용할 수있는 둘 다 동시에, 또한 내가 언급 잊어 버린 나머지 웹 서비스입니다. 둘 중 하나만 사용하는 나머지 웹 서비스는 여기에 필요하기 때문에 둘 다 사용하고 싶지 않습니다. 또한 추가하려면 Android 기기에서 업로드 한 이미지를 수신하여 서버의 폴더에 저장하면됩니다.이 안드로이드면 – DeX03

답변

1

당신은 잠시 기다리 파일 여물 HTTP POST

public String sendFilePost(String urlServer, String pathToOurFile){ 
        HttpURLConnection connection = null; 
        DataOutputStream outputStream = null; 
        DataInputStream inputStream = null; 
        String lineEnd = "\r\n"; 
        String twoHyphens = "--"; 
        String boundary = "*****"; 
        int bytesRead, bytesAvailable, bufferSize; 
        byte[] buffer; 
        int maxBufferSize = 1*1024*1024; 
        try 
        { 
        FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile)); 
        URL url = new URL(urlServer); 
        connection = (HttpURLConnection) url.openConnection(); 
        connection.setDoInput(true); 
        connection.setDoOutput(true); 
        connection.setUseCaches(false); 
        connection.setRequestMethod("POST"); 
        connection.setRequestProperty("Connection", "Keep-Alive"); 
        connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); 

        outputStream = new DataOutputStream(connection.getOutputStream()); 
        outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
        outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd); 
        outputStream.writeBytes(lineEnd); 

        bytesAvailable = fileInputStream.available(); 
        bufferSize = Math.min(bytesAvailable, maxBufferSize); 
        buffer = new byte[bufferSize]; 

        // Read file 
        bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

        while (bytesRead > 0) 
        { 
        outputStream.write(buffer, 0, bufferSize); 
        bytesAvailable = fileInputStream.available(); 
        bufferSize = Math.min(bytesAvailable, maxBufferSize); 
        bytesRead = fileInputStream.read(buffer, 0, bufferSize); 
        } 

        outputStream.writeBytes(lineEnd); 
        outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

        // Responses from the server (code and message) 
        String serverResponseMessage = connection.getResponseMessage(); 
        InputStream is = connection.getInputStream(); 
        BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
        String line; 
        StringBuffer response = new StringBuffer(); 
        while((line = rd.readLine()) != null) { 
         response.append(line); 
        } 
        String rrrr = response.toString(); 
        rd.close(); 
        fileInputStream.close(); 
        outputStream.flush(); 
        outputStream.close(); 
        return rrrr; 
        } 
        catch (Exception ex) 
        { 
         return "Something went wrong!"; 
        } 
       } 
+0

뿐입니다. 그 probem는 o가 다른 쪽을하는 방법을 모른다. – DeX03

관련 문제