android out of memory 发送到服务器,Out of内存错误android

我正在android中工作。我正在设计一个程序将文件上传到http服务器。Out of内存错误android

但是每当我运行这个程序并选择一个大小稍大一点的文件时,这将产生以下错误。

java.lang.OutOfMemoryError

at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:93)

at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:218)

ERROR/AndroidRuntime(557): at

org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$DefaultHttpOut

putStream.write(HttpURLConnectionImpl.java:750)

10-15 03:08:32.113: ERROR/AndroidRuntime(557): at

java.io.DataOutputStream.write(DataOutputStream.java:101)

这是我的文件上传: -

HttpURLConnection conn = null;

DataOutputStream dos = null;

DataInputStream inStream = null;

String existingFileName = "/mnt/sdcard/kuntal.PNG";

Log.v("File upload",""+Environment.getExternalStorageDirectory().getAbsolutePath());

String lineEnd = "\r\n";

String twoHyphens = "--";

String boundary = "*****";

int bytesRead, bytesAvailable, bufferSize;

byte[] buffer;

int maxBufferSize = 1*1024*1024;

String responseFromServer = "";

Log.v(TAG,"url= ");

String urlString = "http://192.168.1.126/MusicApplication/uploadmusic.php?title="+title_by_artist+"&category="+category_of_song+"&filename="+filename+"&price="+price_of_song+"&artist="+HomePageActivity.username;

Log.v(TAG,"url= "+urlString);

try

{

//------------------ CLIENT REQUEST

FileInputStream fileInputStream = new FileInputStream(new File(existingFileName));

// open a URL connection to the Servlet

URL url = new URL(urlString);

// Open a HTTP connection to the URL

conn = (HttpURLConnection) url.openConnection();

// Allow Inputs

conn.setDoInput(true);

// Allow Outputs

conn.setDoOutput(true);

conn.setUseCaches(false);

conn.setRequestMethod("POST");

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

dos = new DataOutputStream(conn.getOutputStream());

dos.writeBytes(twoHyphens + boundary + lineEnd);

dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + existingFileName + "\"" + 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);

// close streams

Log.e("Debug","File is written");

fileInputStream.close();

dos.flush();

dos.close();

Toast.makeText(this, "File Successfully Uploaded", Toast.LENGTH_SHORT).show();

}

catch (MalformedURLException ex)

{

Log.e("Debug", "error: " + ex.getMessage(), ex);

}

catch (IOException ioe)

{

Log.e("Debug", "error: " + ioe.getMessage(), ioe);

}

//------------------ read the SERVER RESPONSE

try {

inStream = new DataInputStream (conn.getInputStream());

String str;

while ((str = inStream.readLine()) != null)

{

Log.e("Debug","Server Response "+str);

}

inStream.close();

}

catch (IOException ioex){

Log.e("Debug", "error: " + ioex.getMessage(), ioex);

}

}

**and this is my php file for upload:-**

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))

{

echo "The file ". basename($_FILES['uploadedfile']['name']).

" has been uploaded";

chmod ("Songs/".basename($_FILES['uploadedfile']['name']), 0644);

}

else

{

echo "filename: " . basename($_FILES['uploadedfile']['name']);

echo "target_path: " .$target_path;

}

请帮我我应该怎么做才能上传多一点大尺寸的文件等作为MP3文件。 谢谢你提前...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值