
您好,提问者:
首先表单、文件同时发送那么肯定是可以的,关于获取的话很难了,因为发送文件的话form必须设置为:multipart/form-data数据格式,默认为:application/x->
刚才说了<form的entype要改为multipart/form-data才能进行发送文件,那么这个时候你表单的另外数据就也会被当成二进制一起发送到服务端。
获取读取过来的内容如下:
//拿到用户传送过来的字节流InputStream is = requestgetInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len = isread(b)) != -1){
Systemoutprintln(new String(b,0,len));
}
上面如图的代码,我们发现发送过来的表单数据跟文件数据是混乱的,我们根本没办法解析(很麻烦),这个时候我们就需要用到第三方辅助(apache 提供的fileuploadjar)来进行获取。
这个网上有很多代码的,如果有什么不明白可以去自行百度,或者追问,我这里只是给你提供的思路,希望理解,谢谢!
[WebMethod]
public string Project(string paramaters)
{
return paramaters;
}
实现代码
public string Post(string methodName, string jsonParas)
{
string strURL = Url + "/" + methodName;
//创建一个>
因权限和安全限制,js是不能获得本地文件大小的,除非安装控件。
jsp获取上传文件大小方法如下:
long size=requestgetContentLength() ;
在文件准备上传之前就可以得到其大小。
当然了,在客户端基本上不大可能获取大文件大小的,必须是文件提交上传开始后,在服务端获取得到的,requestgetContentLength() ; 可以在接受数据流之前就可以获得当前要上传的文件流大小。 这样你可以在服务端控制文件上传之前是否允许继续接受数据流。
你想要调用哪个网站页面,就对那个页面发起相应的>
Web Service接口方法
[WebMethod]
public string Project(string paramaters)
{
return paramaters;
}
实现代码
public string Post(string methodName, string jsonParas)
{
string strURL = Url + "/" + methodName;
//创建一个>
1、Content-Length如果存在并且有效的话,则必须和消息内容的传输长度完全一致。(经过测试,如果过短则会截断,过长则会导致超时。)
2、如果存在Transfer-Encoding(重点是chunked),则在header中不能有Content-Length,有也会被忽视。
3、如果采用短连接,则直接可以通过服务器关闭连接来确定消息的传输长度。(这个很容易懂)
结合>
以上就是关于java http post 同时发送文件流与数据全部的内容,包括:java http post 同时发送文件流与数据、HttpClient 怎么获取连接的内容长度 response.getEntity().getContentLength() 拿出来的是-1,高手指、怎么获取http请求的content-type等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)