文件上传问题

名字全都被占用了 2012-10-31 03:19:05
下面是我的文件上传功能的代码,不知道哪存在问题,一直上传不了,希望各位帮帮忙,谢谢
//实现文件上传
//参数1:服务的地址
//参数2:上传文件路径
protected String UploadFileStream(String strUrl,String SourceFilePath)
{
try {
URL url = new URL(strUrl);
try {
File file = new File(SourceFilePath);
FileInputStream fs = new FileInputStream(SourceFilePath);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//参数设置
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
conn.connect();
//int i = conn.getResponseCode();//测试语句,每次到这i=200,但是这句一执行,os的close=true,后面就没办法写了,不解为什么会这样
byte[] buf = new byte[(int)file.length()];
if (fs != null)
{
int numRead = fs.read(buf);
if (numRead <= 0)
{
break;
}
else
{
os.write(buf);
}
}
int j = conn.getResponseCode();//这句是测试,每次到这的时候,j=400,中间只执行了os.write(buf);
os.flush();
os.close();
fs.close();
conn.disconnect();
}
catch (IOException e)
{
e.printStackTrace();
return "上传失败";
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
return "上传失败";
}
return "上传成功";
}

问题就像上面描述得那样,这样程序执行没报错,但是没办法将数据发送到服务器。我的服务器是WCF,上传契约我在web里调试过,没什么问题,但是客户端要是安卓模拟机器上,就没办法收到数据,不知道为什么会这样,url地址没有错,希望各位高手帮我看看
...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性

就是这个了,不过已经解决了,谢谢大哥……结贴了
sy_binbin 2012-10-31
  • 打赏
  • 举报
回复
具体报什么错啊?
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

要检查是否正常返回请求数据,

if (conn.getResponseCode()==200)
{获得返回结果}
[/Quote]

了解了,太感谢了,现在问题找到了,是因为文件大小超过服务默认的大小值,提示我更改maxReceivedMessageSize="2147483647"我改了,但是还是一直报这个错误,呵呵,好纠结的问题
sy_binbin 2012-10-31
  • 打赏
  • 举报
回复
要检查是否正常返回请求数据,

if (conn.getResponseCode()==200)
{获得返回结果}
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你添加访问网络的权限了吗?

<uses-permission android:name="android.permission.INTERNET" />
[/Quote]
添加了,读文件保存成文件流的时候出的问题,现在在找问题,我还有个问题顺便问下,为什么流写完了,关闭了,还要执行int j = conn.getResponseCode();服务器才能收到内容?,希望大哥能解答一下。谢谢
sy_binbin 2012-10-31
  • 打赏
  • 举报
回复
你添加访问网络的权限了吗?

<uses-permission android:name="android.permission.INTERNET" />

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧