사진업로드는 잘됩니다.
그런데 mp3파일은 되지않습니다
8메가바이트짜리는 아무것도 뜨지않는데
작은용량의 mp3는 이러한 로그가 뜨면서 강제종료됩니다
이유가뭘까요 ㅠ
12-26 16:50:24.040: E/dalvikvm-heap(4443): Out of memory on a 48701808-byte allocation.
12-26 16:50:24.040: I/dalvikvm(4443): "AsyncTask #2" prio=5 tid=14 RUNNABLE
12-26 16:50:24.040: I/dalvikvm(4443): | group="main" sCount=0 dsCount=0 obj=0x43902d68 self=0x578814b0
12-26 16:50:24.040: I/dalvikvm(4443): | sysTid=5809 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1468537088
12-26 16:50:24.040: I/dalvikvm(4443): | schedstat=( 175870825 141609881 308 ) utm=7 stm=10 core=0
12-26 16:50:24.040: I/dalvikvm(4443): at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:~91)
12-26 16:50:24.040: I/dalvikvm(4443): at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
12-26 16:50:24.040: I/dalvikvm(4443): at libcore.net.http.RetryableOutputStream.write(RetryableOutputStream.java:61)
12-26 16:50:24.040: I/dalvikvm(4443): at java.io.DataOutputStream.write(DataOutputStream.java:98)
12-26 16:50:24.040: I/dalvikvm(4443): at com.example.cloud.AndroidUploader.doUpload(AndroidUploader.java:80)
12-26 16:50:24.040: I/dalvikvm(4443): at com.example.cloud.AndroidUploader.doInBackground(AndroidUploader.java:116)
12-26 16:50:24.040: I/dalvikvm(4443): at com.example.cloud.AndroidUploader.doInBackground(AndroidUploader.java:1)
12-26 16:50:24.040: I/dalvikvm(4443): at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-26 16:50:24.040: I/dalvikvm(4443): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-26 16:50:24.040: I/dalvikvm(4443): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-26 16:50:24.040: I/dalvikvm(4443): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-26 16:50:24.040: I/dalvikvm(4443): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-26 16:50:24.045: I/dalvikvm(4443): at java.lang.Thread.run(Thread.java:856)
12-26 16:50:24.045: W/dalvikvm(4443): threadid=14: thread exiting with uncaught exception (group=0x415d82a0)
12-26 16:50:24.045: E/AndroidRuntime(4443): FATAL EXCEPTION: AsyncTask #2
12-26 16:50:24.045: E/AndroidRuntime(4443): java.lang.RuntimeException: An error occured while executing doInBackground()
12-26 16:50:24.045: E/AndroidRuntime(4443): at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.lang.Thread.run(Thread.java:856)
12-26 16:50:24.045: E/AndroidRuntime(4443): Caused by: java.lang.OutOfMemoryError
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
12-26 16:50:24.045: E/AndroidRuntime(4443): at libcore.net.http.RetryableOutputStream.write(RetryableOutputStream.java:61)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.io.DataOutputStream.write(DataOutputStream.java:98)
12-26 16:50:24.045: E/AndroidRuntime(4443): at com.example.cloud.AndroidUploader.doUpload(AndroidUploader.java:80)
12-26 16:50:24.045: E/AndroidRuntime(4443): at com.example.cloud.AndroidUploader.doInBackground(AndroidUploader.java:116)
12-26 16:50:24.045: E/AndroidRuntime(4443): at com.example.cloud.AndroidUploader.doInBackground(AndroidUploader.java:1)
12-26 16:50:24.045: E/AndroidRuntime(4443): at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-26 16:50:24.045: E/AndroidRuntime(4443): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-26 16:50:24.045: E/AndroidRuntime(4443): ... 4 more
12-26 16:50:24.165: E/SpannableStringBuilder(4443): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-26 16:50:24.165: E/SpannableStringBuilder(4443): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
12-26 16:50:24.230: E/WindowManager(4443): Activity com.example.cloud.upload_music has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@438f6ee0 that was originally added here
12-26 16:50:24.230: E/WindowManager(4443): android.view.WindowLeaked: Activity com.example.cloud.upload_music has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@438f6ee0 that was originally added here
12-26 16:50:24.230: E/WindowManager(4443): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:407)
12-26 16:50:24.230: E/WindowManager(4443): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:311)
12-26 16:50:24.230: E/WindowManager(4443): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
12-26 16:50:24.230: E/WindowManager(4443): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
12-26 16:50:24.230: E/WindowManager(4443): at android.view.Window$LocalWindowManager.addView(Window.java:554)
12-26 16:50:24.230: E/WindowManager(4443): at android.app.Dialog.show(Dialog.java:277)
12-26 16:50:24.230: E/WindowManager(4443): at com.example.cloud.AndroidUploader.onPreExecute(AndroidUploader.java:34)
12-26 16:50:24.230: E/WindowManager(4443): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
12-26 16:50:24.230: E/WindowManager(4443): at android.os.AsyncTask.execute(AsyncTask.java:534)
12-26 16:50:24.230: E/WindowManager(4443): at com.example.cloud.upload_music$1$1.onClick(upload_music.java:132)
12-26 16:50:24.230: E/WindowManager(4443): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
12-26 16:50:24.230: E/WindowManager(4443): at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 16:50:24.230: E/WindowManager(4443): at android.os.Looper.loop(Looper.java:137)
12-26 16:50:24.230: E/WindowManager(4443): at android.app.ActivityThread.main(ActivityThread.java:4946)
12-26 16:50:24.230: E/WindowManager(4443): at java.lang.reflect.Method.invokeNative(Native Method)
12-26 16:50:24.230: E/WindowManager(4443): at java.lang.reflect.Method.invoke(Method.java:511)
12-26 16:50:24.230: E/WindowManager(4443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
12-26 16:50:24.230: E/WindowManager(4443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
12-26 16:50:24.230: E/WindowManager(4443): at dalvik.system.NativeStart.main(Native Method)
12-26 16:50:39.475: I/Process(4443): Sending signal. PID: 4443 SIG: 9
12-26 16:51:39.150: D/SensorManager(5972): unregisterListener:: Listener= android.view.OrientationEventListener$SensorEventListenerImpl@422c3c68
12-26 16:51:39.150: D/Sensors(5972): Remain listener = Sending .. normal delay 200ms
12-26 16:51:39.150: I/Sensors(5972): sendDelay --- 200000000
12-26 16:51:39.150: D/SensorManager(5972): JNI - sendDelay
12-26 16:51:39.150: I/SensorManager(5972): Set normal delay = true
12-26 16:51:39.195: W/IInputConnectionWrapper(5972): getSelectedText on inactive InputConnection
12-26 16:51:39.200: W/IInputConnectionWrapper(5972): setComposingText on inactive InputConnection
try {
// sendID();
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
FileInputStream mFileInputStream = new FileInputStream(fileName);
urlString += "?id=";
urlString += main.usr.getUserId();
urlString += "&path=" + fileName;
Log.d("Test", urlString);
URL connectUrl = new URL("urlString);
Log.d("Test", "mFileInputStream is " + mFileInputStream);
// open connection
HttpURLConnection conn = (HttpURLConnection) connectUrl
.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);
// write data
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\""
+ fileName + "\"" + lineEnd);
dos.writeBytes(lineEnd);
int bytesAvailable = mFileInputStream.available();
int maxBufferSize = 8 * 1024 * 1024;
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
int bytesRead = mFileInputStream.read(buffer, 0, bufferSize);
Log.d("Test", "image byte is " + bytesRead);
// read image
while (bytesRead > 0) {
dos.write(buffer, 0, bufferSize);
bytesAvailable = mFileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = mFileInputStream.read(buffer, 0, bufferSize);
}
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
// close streams
Log.e("Test", "File is written");
mFileInputStream.close();
dos.flush(); // finish upload...
// get response
int ch;
InputStream is = conn.getInputStream();
StringBuffer b = new StringBuffer();
while ((ch = is.read()) != -1) {
b.append((char) ch);
}
String s = b.toString();
Log.e("Test", "result = " + s);
// mEdityEntry.setText(s);
dos.close();
} catch (Exception e) {
Log.d("Test", "exception " + e.getMessage());
// TODO: handle exception
}
AsyncTask로 둘러주었습니다.