내 안드로이드 proyect의 asynctask 에이 코드가있어 PHP로 서버에 파일을 업로드합니다.
URL url = new URL(args[1]);
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("ENCTYPE", "multipart/form-data");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
connection.setRequestProperty("uploaded_file", args[0]);
dataOutputStream = new DataOutputStream(connection.getOutputStream());
dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\"" + args[0] + "\"" + lineEnd);
dataOutputStream.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable,maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fileInputStream.read(buffer,0,bufferSize);
while (bytesRead > 0){
dataOutputStream.write(buffer,0,bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable,maxBufferSize);
bytesRead = fileInputStream.read(buffer,0,bufferSize);
}
dataOutputStream.writeBytes(lineEnd);
dataOutputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
Log.d(TAG, "Server Response is: " + serverResponseMessage + ": " + serverResponseCode);
fileInputStream.close();
dataOutputStream.flush();
dataOutputStream.close();
이것은 서버 측의 PHP 코드입니다.
$file_path = "./uploads/";
$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path) ){
echo "success";
} else{
echo "fail";
}
모든 것이 잘 작동하고 파일은 올바르게 업로드되지만 서버가 아래 코드 줄에서 나에게 제공하는 유일한 응답입니다.
Log.d(TAG, "Server Response is: " + serverResponseMessage + ": " + serverResponseCode);
그것은:
서버 응답 : 정상 : 200
또는:
서버 응답 : 찾을 수 없음 : 404
서버 측에 나타나는 "성공" 및 "실패" 문자열을 얻고 싶습니다. 어떻게해야합니까? 미리 감사드립니다.
예 HttpUrlConnection#getResponseMessage
는 HTTP 응답 메시지를 반환합니다 (예 : 200 = HTTP OK). 원하는 것은 다음과 같습니다.
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// read the contents of the connection from the bufferedreader
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다