PHP로 안드로이드에서 서버로 이미지를 업로드 중입니다. 이미지 파일이 업로드되고 있지만 그 파일을 보려고하면 깨진 이미지가 정확히 무엇이 문제인지 알 수 없습니다. 업로드는 서버에 표시되는 AsyncTask를 안드로이드 코드이미지 안드로이드에서 PHP 서버로 이미지 업로드 중
FileInputStream fileInputStream;
HttpURLConnection connection;
URL url;
DataOutputStream outputStream;
int bytesRead,bytesAvailable,bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File selectedFile = new File(selectedImagePath);
try
{
fileInputStream = new FileInputStream(selectedFile);
url = new URL("The url of my server");
connection= (HttpURLConnection)url.openConnection();
Log.v(TAG,"connection established");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection","Keep-Alive");
connection.setRequestProperty("ENCTYPE","multipart/form-data");
connection.setRequestProperty("Content-Type","multipart/form-data;boundary=*****");
connection.setRequestProperty("uploaded_file",selectedImagePath);
outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.writeBytes("--*****\r\n");
outputStream.writeBytes("Content-Disposition:form-data;name=\"uploaded_file\";filename=\""+selectedImagePath+"\""+"\r\n");
outputStream.writeBytes("\r\n");
outputStream.writeBytes("--*****\r\n");
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable,maxBufferSize);
buffer = new byte[bufferSize];
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("\r\n");
outputStream.writeBytes("--*****\r\n");
int serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
if(serverResponseCode == HttpURLConnection.HTTP_OK) {
String line;
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
sb.append(line);
}
}
fileInputStream.close();
outputStream.flush();
outputStream.close();
PHP Code:
$file_path = basename($_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path))
{
echo "success";
} else
{
echo "fail";
}
'outputStream.write (버퍼, 0, 버퍼 크기)'. 그것은'outputStream.write (buffer, 0, bytesRead);'이어야합니다. – greenapps
원본 및 업로드 된 파일의 크기를 비교해보십시오. – greenapps
답장을 보내 주셔서 감사 합니다만 지금 완료되었습니다 !! 파일 블록을 닫은 문제가 있습니다. – Akki