android 图片资源受损,android图片上传,文件在服务器中损坏

我正在做一个项目,我必须使用URL将

Image上传到服务器.

但是当我上传文件时,文件在服务器中已损坏,当我打开文件时,它显示错误消息“文件已损坏”.我怎样才能克服这个问题.

这是我的代码:

String lineEnd = "\r\n";

String twoHyphens = "--";

String boundary = "*****";

try {

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

Log.e("Upload", "Inside second Method");

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

// open a URL connection to the Servlet

URL url = new URL(IpAddress+"ImageUpload/"+token+"/"+name_sel_image+"%7C"+extension);

// Open a HTTP connection to the URL

conn = (HttpURLConnection) url.openConnection();

// Allow Inputs

conn.setDoInput(true);

// Allow Outputs

conn.setDoOutput(true);

// Don't use a cached copy.

conn.setUseCaches(false);

// Use a post method.

conn.setRequestMethod("POST");

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

conn.setRequestProperty("Content-Type",

"multipart/form-data;boundary=" + boundary);

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

dos.writeBytes(twoHyphens + boundary + lineEnd);

dos.writeBytes("Content-Disposition: post-data; name=uploadedfile;filename="

+ name_sel_image + "" + lineEnd);

dos.writeBytes(lineEnd);

//Log.e(Tag, "Headers are written");

// create a buffer of maximum size

int bytesAvailable = fileInputStream.available();

int maxBufferSize = 1000;

// int bufferSize = Math.min(bytesAvailable, maxBufferSize);

byte[] buffer = new byte[bytesAvailable];

// read file and write it into form...

int bytesRead = fileInputStream.read(buffer, 0, bytesAvailable);

while (bytesRead > 0) {

dos.write(buffer, 0, bytesAvailable);

bytesAvailable = fileInputStream.available();

bytesAvailable = Math.min(bytesAvailable, maxBufferSize);

bytesRead = fileInputStream.read(buffer, 0, bytesAvailable);

}

// send multipart form data necesssary after file data...

dos.writeBytes(lineEnd);

dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

// close streams

//Log.e(Tag, "File is written");

fileInputStream.close();

dos.flush();

dos.close();

} catch (MalformedURLException ex) {

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

}

catch (IOException ioe) {

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

}

try {

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

String line;

while ((line = rd.readLine()) != null) {

Log.i("Response", line);

}

rd.close();

} catch (IOException ioex) {

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

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值