나는 안드로이드를 처음 접하기 때문에 어떤 파일을 서버에 올리기위한 좋은 튜토리얼을 얻지 못했다. 파일을 서버에 업로드하는 좋은 지침서를 제공해주십시오. 파일 크기는 any 여야하며 업로드 비율을 추적하는 진행 대화 상자가 필요합니다. 나는 파일 업로드뿐만 아니라 이미지 또는 비디오에 대한 간단하고 좋은 튜토리얼이 필요합니다.안드로이드 어떤 파일을 서버에 업로드
-2
A
답변
0
다음은 파일을 업로드하는 동안 서버에 파일을 업로드하고 진행률 대화 상자를 표시하는 클래스의 예입니다.
public class UploadToServer extends Activity {
TextView messageText;
Button uploadButton;
int serverResponseCode = 0;
ProgressDialog dialog = null;
String upLoadServerUri = null;
/********** File Path *************/
final String uploadFilePath = "/mnt/sdcard/service_lifecycle.png";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload_to_server);
uploadButton = (Button)findViewById(R.id.uploadButton);
messageText = (TextView)findViewById(R.id.messageText);
messageText.setText("Uploading file path :- '/mnt/sdcard/"+uploadFileName+"'");
/************* Php script path ****************/
upLoadServerUri = "http://www.androidexample.com/media/UploadToServer.php";
uploadButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog = ProgressDialog.show(UploadToServer.this, "", "Uploading file...", true);
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("uploading started.....");
}
});
uploadFile(uploadFilePath);
}
}).start();
}
});
}
public int uploadFile(String sourceFileUri) {
String fileName = sourceFileUri;
HttpURLConnection conn = null;
DataOutputStream dos = null;
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File sourceFile = new File(sourceFileUri);
if (!sourceFile.isFile()) {
dialog.dismiss();
Log.e("uploadFile", "Source File not exist :"
+uploadFilePath + "" + uploadFileName);
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("Source File not exist :"
+uploadFilePath + "" + uploadFileName);
}
});
return 0;
}
else
{
try {
// open a URL connection to the Servlet
FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);
// Open a HTTP connection to the URL
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // Allow Inputs
conn.setDoOutput(true); // Allow Outputs
conn.setUseCaches(false); // Don't use a Cached Copy
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("uploaded_file", fileName);
dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name="uploaded_file";filename=""
+ fileName + """ + lineEnd);
dos.writeBytes(lineEnd);
// create a buffer of maximum size
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];
// read file and write it into form...
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
// send multipart form data necesssary after file data...
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
// Responses from the server (code and message)
serverResponseCode = conn.getResponseCode();
String serverResponseMessage = conn.getResponseMessage();
Log.i("uploadFile", "HTTP Response is : "
+ serverResponseMessage + ": " + serverResponseCode);
if(serverResponseCode == 200){
runOnUiThread(new Runnable() {
public void run() {
String msg = "File Upload Completed.\n\n See uploaded file here : \n\n"
+" http://www.androidexample.com/media/uploads/"
+uploadFileName;
messageText.setText(msg);
Toast.makeText(UploadToServer.this, "File Upload Complete.",
Toast.LENGTH_SHORT).show();
}
});
}
//close the streams //
fileInputStream.close();
dos.flush();
dos.close();
} catch (MalformedURLException ex) {
dialog.dismiss();
ex.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("MalformedURLException Exception : check script url.");
Toast.makeText(UploadToServer.this, "MalformedURLException",
Toast.LENGTH_SHORT).show();
}
});
Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
} catch (Exception e) {
dialog.dismiss();
e.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
messageText.setText("Got Exception : see logcat ");
Toast.makeText(UploadToServer.this, "Got Exception : see logcat ",
Toast.LENGTH_SHORT).show();
}
});
Log.e("Upload file to server Exception", "Exception : "
+ e.getMessage(), e);
}
dialog.dismiss();
return serverResponseCode;
} // End else block
}
}
체크 아웃 전체 소스 코드는 여기 Upload File To Server
편집 :
선택 갤러리에서 이미지와 얻는 것은 경로입니다.
만들기 Intent
및
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 0);
startActivityForResult
포착 이미지의 경로를 가져올 수 및 서버에 업로드 onActivityResult
을 정의합니다. 여기 Selected Image and Its Real Path
0
@Override
protected void onActivityResult(int reqCode, int resCode, Intent data) {
if(resCode == Activity.RESULT_OK && data != null) {
// get file path of picked image and call upoadFile(uploadFilePath) method to upload it
}
}
체크 아웃 전체 소스 코드는 전송을 원하거나 가장 좋은 방법 중 하나가 개조 라이브러리로 사용하는 서버와 데이터를 수신합니다. 작업은 매우 간단하며 문서 양식 here을 사용할 수 있습니다. 나는 그것이 당신을 위해 일할 수 있기를 바랍니다.
관련 문제
- 1. 안드로이드 업로드 서버에 파일
- 2. 안드로이드 및 PHP 서버에 파일을 업로드
- 3. 안드로이드 서버에 이미지 업로드
- 4. Drupal 서버에 파일을 업로드
- 5. 서버에 파일을 균등하게 업로드
- 6. PHP 파일을 서버에 업로드
- 7. 아파치 서버에 파일을 업로드
- 8. KML 파일을 서버에 업로드
- 9. AJAX가 서버에 파일을 업로드 %
- 10. 검색된 파일을 서버에 업로드
- 11. 큰 파일을 서버에 업로드
- 12. wpf 파일을 서버에 업로드
- 13. 안드로이드 - 서버에 업로드 할 때의 이미지 품질
- 14. PHP. .gif 파일을 서버에 업로드
- 15. WAR 파일을 FTP 서버에 업로드
- 16. 하나의 파일을 여러 서버에 업로드
- 17. 파일을 원격 서버에 직접 업로드
- 18. 파일을 여러 서버에 업로드 하시겠습니까?
- 19. 이미지 파일을 WP8로 서버에 업로드
- 20. 안드로이드 애플 리케이션에서 PHP 서버에 여러 이미지 파일을 업로드
- 21. 안드로이드 에뮬레이터가 서버에 파일을 업로드 할 수 있습니까?
- 22. FileNotFoundException이 안드로이드에서 서버에 .MP3 파일을 업로드 할 때 안드로이드
- 23. 서버에 안드로이드 업로드 파일이 404 오류가 발생합니다
- 24. 서버에 이미지 파일 업로드
- 25. android의 서버에 파일 업로드
- 26. 업로드 한 파일을 서버에 저장하는 방법은 무엇입니까?
- 27. 업로드 imagecreatefrompng을 서버에 업로드
- 28. PHP : 서버에 파일을 업로드 할 수없는
- 29. 서버에 파일을 업로드 할 수 없습니다.
- 30. 안드로이드 웹 호스팅 서버에 이미지 업로드
미리 정의 된 파일 업로드 sdcard에서 선택하고 동일한 확장자를 사용하여 서버에 업로드 –
업데이트 된 대답을 확인하여 sdcard에서 파일을 선택하고 서버에 업로드 할 경로를 얻습니다. –