JAVA 接收图片和数据同时,数据接收是空的,为什么?

iOS手机前端使用AFNetwork同时上传图片和参数。为什么java只接收到图片,数据接收是空的?是两种传输的类型不同吗?该如何解决?

7个回答

能收到图片说明form表单没错, Java接口没错
参数数据没收到只剩下3个可能:
1. IOS没有传参
2. JAVA取错了地方(request)
3. IOS&JAVA的存/取参数名不对
检查以上三个地方能解决问题, 请采纳!

能接收到图片说明传输类型是一样的,数据接收是空的说明前端没有传过去

KONGYU_210
KONGYU_210 回复qq_42001903: 看图
大约一年之前 回复
qq_42001903
qq_42001903 回复KONGYU_210: 上代码
大约一年之前 回复
KONGYU_210
KONGYU_210 当前端只传数据时,java是能接收到的,当前端图片与数据一起传,图片接收到,数据是空的,没收到。。。
大约一年之前 回复

图片说明

好像是有个接收顺序问题,先接收流再接收参数貌似是

这个图代码太笼统了,要断点检查您写的其他工具方法中的代码是不是有问题吧

你的 from标签里添加这个没有?
enctype="multipart/form-data"

  1. IOS没有传参
  2. JAVA取错了地方(request)
  3. IOS&JAVA的存/取参数名不对
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么接收的数据是空内容?
case FD_READ: // 读数据rn recv(m_Accept, (char*)&buff, sizeof(buff), 0);rn //str = buff; // char 转 CStringrn str.Format(L"%s",buff);rn m_Msg.ReplaceSel(str + L"\n");rn MessageBox(str, NULL, MB_OK);rn break;
socket 接收图片数据
int RecvImageData(SOCKET socket,char *pImageData,int ImageSize) { int nCount = 0; int nRet = 0; while (nCount { nRet = ::recv(socket, (char *)pImageData + nCount, ImageSize - nCount, 0); i
为什么接收不到数据
我写的上位机程序,用串口助手可以接收到它发来的数据,问什么它接收不到串口助手发过来的数据,下面是它接收数据的代码,大家帮我看看,谢谢!rnrnprocedure TForm1.Button7Click(Sender: TObject);rnrnvarrndata:string;rnBufferLength:word;rnBuffer:Pointer;rnbegin rnSetLength(data,BufferLength);rnmove(Buffer^,pchar(data)^,Bufferlength);rnMemo1.lines.Add(data);rnMemo1.Invalidate;rnrnend;
protobuf发送和接收空数据
protobuf可以将空数组转换成对象,并且,如果protobuf对象中没有给任何属性设置值,那转换成的byte[]数组是空的。 如果protobuf对象没有属性,也可以接受一个非空数组反序列化成protobuf对象(兼容) protobuf代码如下: syntax = "proto2"; message Ddata{ repeated data dataList =1; option...
java 接收GPRS数据
代码:package test; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java
1.3 数据的接收 之 数据接收全程实例分析
#include <stdio.h> #include <mem.h> #include <wattcp.h> int main(int argc, char *argv[]) { unsigned long host = -1;//默认是广播地址,即可以接收一切主机发送来的消息 udp_Socket s; char myaddr[20], hisaddr[20
数据接收
从下位机接收的数据如何保存到数据库当中?
数据接收,处理数据
该视频面向有一定开发经验的IOS开发人员,视频主要通过实际上线项目,讲解蓝牙的搜索,连接,手机发送数据,手机接收数据,并处理返回的数据,另外这个是实战项目,包括各个关键的技术点都会提到,还有一些自定义的控件,比如进度条,自定义拖动控件等等
前台为什么接收不到数据
今天花了一上午,后台是证正常的,struts.xml是正常的 。但是就是说找不到这个方法。 最后发现是因为方法应该是public 但是手误成了private
RecvOneOrMore为什么接收不到数据
我测试socket的代码如下,发送一个长度为6字节,内容均为0的请求包,正常情况应该可以从服务器得到一个响应包,但是为什么这段代码接收不到数据,请高手赐教!谢谢rn[code=C/C++]void CTcpEngine::RunL()rn rn switch(iChannelState)rn rn case EChannelConnected:rn rn if (iStatus==KErrNone)rn rn // Connection was made successfullyrn iStatusText=_L("\nConnection established");rn NotifyProgress();rn rn rn TText8 pack[6] = 0, 0, 0, 0, 0, 0;rn iWriteDataBuffer.Append(pack, 6);rn rn iChannelState=EChannelSending;rn iSocket.Send(iWriteDataBuffer, 0, iStatus);rn SetActive();rn rn elsern rn iStatusText=_L("\nFailed to connect");rn NotifyProgress();rn rn rn break;rnrn case EChannelSending:rn rn // Receive data from the "server"rn iStatusText=_L("\nSent data");rn NotifyProgress();rnrn iSocket.RecvOneOrMore(iReadDataBuffer, 0, iStatus, iRecvLen);rn iChannelState=EChannelReceiving;rn SetActive();rn rn break;rnrn case EChannelReceiving:rn rn if (iStatus == KErrNone)rn rn // Data was received successfullyrn iStatusText=_L("\nReceived data");rn NotifyProgress();rn // Display received data in user interfacern //iStatusText=iReadDataBuffer;rn //NotifyProgress();rn rn elsern rn iStatusText=_L("\nError reading data");rn NotifyProgress();rn rnrn iStatusText=_L("\nClose the connection...");rn NotifyProgress();rnrn iSocket.Close();rn iStatusText=_L("\nEnd of test.");rn NotifyProgress();rn rn break;rn default:rn break;rn rn [/code]
为什么session接收不了数据???!!!
我发现,在我的一个用来记录会员是否已经登陆的参数session("flag"),网页在同一个窗口中跳转,此参数可以传递到下一页,但如果是新窗口链接打开另一网页,新打开的页面却接收不到这个参数,,,为什么?这种情况是偶尔才会出现,就是不知道什么时候才会出试,在别的机子上也出现这样的情况,证明不是机子的问题。
UDP为什么接收不到数据?
我做了一个UDP程序,可是不能互传数据,请大家帮忙!rn服务器端:rn Public Sub exam2()rn ' This constructor arbitrarily assigns the local port number.rn Dim udpClient As New UdpClientrn Tryrn udpClient.Connect(IPAddress.Parse("192.168.30.51"), 13579)rn Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Parse("192.168.30.51"), 13579)rn Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)rn Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)rn MessageBox.Show(("This is the message you received " + _rn returnData.ToString()))rn MessageBox.Show(("This message was sent from " + _rn RemoteIpEndPoint.Address.ToString() + _rn " on their port number " + _rn RemoteIpEndPoint.Port.ToString()))rn udpClient.Close()rn Catch e As Exceptionrn MessageBox.Show(e.ToString())rn End Tryrn End Subrn客户端:rn Dim udpClient As New UdpClientrn Tryrn udpClient.Connect(IPAddress.Parse("192.168.30.51"), 13579)rn Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there?")rn udpClient.Send(sendBytes, sendBytes.Length)rn udpClient.Close()rn Catch e As Exceptionrn MessageBox.Show(e.ToString())rn End Tryrn请问错在哪了?
求助:为什么接收不到数据?
我是新手,前几天跟着网上学写了一个VC++的ping程序,采用原始套接字收发数据,但我运行的时候,数据可以发送,但是接收的时候只有将本机设为目标地址才可以,当我ping了一下其他网站,程序就死了,我调试了几天了,也找不出哪里有问题,我快崩溃了,求助各位大虾指点指点,(我ICMP报文头和数据部分用校验和函数校验过没有问题)
为什么MSComm接收不到数据
MScom->InputMode = comInputModeBinary;rnMScom->RTreshold = 1;rn一点反应都没有rn还有一点就是怎样把字符串转化成二进制发送出去,谢谢!
接收flex4数据是出错!!!
在flex4中得到数据,在struts2中接收rn PointSearch search = new PointSearch();rn searchresult result = null;rn try rn result = search.pointSearch(citycode, keyword);rn catch (Exception e) rn e.printStackTrace();rn rn时,citycode和keyword是从flex4中传递到action的rn。报了这个错误。rn严重: Servlet.service() for servlet default threw exceptionrnjava.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequestrn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)rn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)rn at com.isafe.real.action.GetKeywordSearchListAction.execute(GetKeywordSearchListAction.java:43)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)rn at java.lang.reflect.Method.invoke(Method.java:597)rn at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)rn at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)rn at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)rn请问怎么解决啊。是不是架包有问题?
java实现接收kafka-avro数据
项目亲测有效,如使用发现问题,或使用中有疑问,均可咨询594274919.
java 接收从键盘输入的数据
Scanner scan = new Scanner(System.in); // 从键盘接收数据  
JAVA接收python函数返回数据
我用Python程序返回了HTML数据(写在程序里的) 现在想用java把数据捕获到 ,有什么好的方法么?
JAVA中Socket数据接收
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println(reader.readLine()); 这个是按行读取必须有换行符 ‘\n’InputStream input = socket.getInputStream(); wh
JAVA十六进制数据接收与传输
由于项目中经常遇到与设备进行交互获取数据,不仅有Python版本、还有Java版本,还可能会有C#版本,在此做个记录。一、十六进制转换工具类主要包含十六进制字符串转ASCII,ASCII转十六进制字符串以及十六进制字符串转Byte数组等方法:/** * Created by wly on 2018/4/17. */ public class HexConvert { public stati...
Java串口编程数据接收的问题???
各位大虾:rn 你们好,小弟有一事相求。小弟现在在做一个关于串口通信的软件,现在遇到了一点接收串口发过来的数据的问题!如果用事件监听的方法接收数据,如rn[code=Java]readBuffer=new byte[29]; rn try rn while (comInputStream.available() > 0) rn// comInputStream.read(readBuffer,0,comInputStream.available());rn int data=comInputStream.read(readBuffer);rn// stringBuffer.append(data);rn rn catch (IOException ioe) rn System.out.println("Exception " + ioe);rn [/code]rn那么inputStream一次只能读8个字节,也就是说字节数组一次只存了inputstream读取的八个字节,如果是20几个字节就分了4次来读了,已经分段了。我的设备是一次发20几个字节的,而且都是十六进制的数据,我想请教一下各位大虾,有什么方法可以一次把所有数据读完..!急啊,谢谢各位大虾的帮忙啊,小弟不胜感激
C#POST数据到服务器问题,接收为空问题
代码如下rn [code=C#]string strReturn = "";rn string url = @"http://aa.XXX.com/bb.do";rn tryrn rn byte[] obtPostData = Encoding.UTF8.GetBytes(sbJSON.ToString());rn HttpWebRequest orqRequest = (HttpWebRequest)WebRequest.Create(url);rn orqRequest.Timeout = 3000;rnrn orqRequest.Method = "POST";rn orqRequest.ContentType = "application/json;charset=utf-8";rn orqRequest.ContentLength = obtPostData.Length;rnrnrn Stream stream;rn using (stream = orqRequest.GetRequestStream())rn rn stream.Write(obtPostData, 0, obtPostData.Length);rn rnrn HttpWebResponse orsResponse = (HttpWebResponse)orqRequest.GetResponse();rnrn using (Stream responseStream = orsResponse.GetResponseStream())rn rn using (StreamReader streamRead = new StreamReader(responseStream, Encoding.UTF8))rn rn strReturn = streamRead.ReadToEnd();rn rn rnrn rn catch (WebException e)rn rn //写日志rn LogManager.WriteLog(LogFile.Trace, e.Message.ToString());rn [/code]rn 服务器接收老是为空!rn不知道什么问题rn我本地测试接收返回又都没有问题rn哪位大侠帮我看一下
使用@RequestPart同时接收表单数据和MultipartFile数据
项目中有使用restTemplate转发表单数据和上传文件,之前都是将表单数据json传到后台进行序列化,这样一来代码就显得十分不美观,后来发现使用@RequestPart注解可直接进行数据绑定,十分优雅地解决了这个问题。
网络编程+多线程 怎样同时接收多组数据?
我在摸索做一个远程控制的架构,现在是这种情况:rn与一个被控端建立连接后,控制端打开两个窗口(创建两个线程),一个接收进程数据,一个接收屏幕数据。那么两个线程都要调用recv了;而客户端也要开两个线程(一个发进程数据,一个发屏幕数据);那么两个recv怎么确定哪个数据是自已该接收的?rnrn或者我上面的思路不对,那该怎么实现控制端同时接收被控端的两个及以上的数据?rnrn
同时接收两个串口数据的问题
用两个com口同时连接两台设备。如果使用cserial类。谢谢。
QUdpSocket同时接收多个端口发来数据
各位大神,小弟不才。现遇到一个问题困惑两天。有一个需求,我建一个类似于UDP服务器的小软件,接收各家发来的数据,各家发来的数据各有不同,IP不同,Port不同,想咨询一下我应该如何构建这样的UDP服务器。并且向UDP发送数据的人数会动态改变。
如何同时接收多个串口的数据
一个程序需要外接8个串口,那么必须写八个串口接受函数么?就是每个com口对应的DataReceived必须都不一,必须写8个么?能不能一个让所有comm的 DataReceived 都等于同一个接收函数?
从串口同时接收多台设备的数据
假设有多台设备并联,通过485线再通过485/232转换器同时传送数据到电脑主机中,请问会不会造成数据错乱,rn比如说:设备1传送字节数组:0x01,0x02,0x03,0x04rn 设备2传送字节数组:0x05,0x06,0x07,0x08rn造成主机程序接收到0x01,0x05,0x02,0x06,0x03,0x07,0x04,0x08这样的错误数据。应该怎么处理这样的情况呢?要能保证设备同时发送数据,不要是先跟一台通信,然后再跟另外一台通信这种方案。请问大侠们有办法吗?急盼答,谢谢!!!
modbus 从机同时接收多包数据
小弟菜鸟一个,最近在学着做modbus 从机数据读取,主机每次发送时间间隔为500ms,每次发送4包数据,包括3包写数据,1包读数据。rn请问各位大侠:rn1:主机是一次发送4包数据吗?如果是,怎么拆分这4包数据?rn2:如果一次发送不完整又该怎么处理?rn3:什么情况下的数据可以丢弃?rn
1.2 数据的接收 之 数据粗加工
​ 当一个人从远方走来的时候,你是不是先分辨他是男是女,是认识还是不认识呢?肯定是这样的。WatTcp也是这样,当接到数据以后,它也会先判断一下是认识还是不认识,是UDP数据还是TCP数据,抑或是其他类型的数据。它会在两个函数中进行判断,一个是: ​ _eth_arrived():判断数据是PD_ETHER类型还是PD_SLIP类型。如果是其他类型就不认识,抛弃。 代码如下:
为什么request接收语句放在if里面接收不到传来的数据?
public string OutputBySize(string p_strContent)rn rn rn String PageNumber = Request.QueryString["pages"];rn //Response.Write(PageNumber);//能够打印出来.rn int m_intPageSize = 500;//文章每页大小rn int m_intCurrentPage = 1;//设置第一页为初始页rn int m_intTotalPage = 0;rn int m_intArticlelength = p_strContent.Length;//文章长度rn string m_strRet = p_strContent;rn if (m_intPageSize < m_intArticlelength)rn //如果每页大小大于文章长度时就不用分页了rn rn Response.Write(PageNumber);//打印不出来.rn rn if (m_intArticlelength % m_intPageSize == 0)rn //set total pages count rn m_intTotalPage = m_intArticlelength / m_intPageSize;rn rn elsern //if the totalsizern m_intTotalPage = m_intArticlelength / m_intPageSize + 1;rn rn if (Request.QueryString["pages"] != null)rn //set Current page numberrn Response.Write(Request.QueryString["pages"]);//打印不出来.rn rn m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]);rn rn if (m_intCurrentPage > m_intTotalPage)rn rn m_intCurrentPage = m_intTotalPage; rn rn rn rn rn //set the page content 设置获取当前页的大小rn m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1));rn m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);rn string m_strPageInfo = " ";rn for (int i = 1; i <= m_intTotalPage; i++)rn rn if (i == m_intCurrentPage)rn m_strPageInfo += "" + i + "|";rn elsern m_strPageInfo += "" + i + "|";rn rn //输出显示各个页码rn this.labPageNumber.Text = m_strPageInfo;rnrn return m_strRet;rnrn rnrnrn这是把一编长文章分页的类.
java接收图片并上传(接收)
enctype属性 我们平常在使用form表单时会有一个enctype属性,其默认是application/x-www-form-urlencoded w3c对这个编码的定义是空格转换为 &quot;+&quot; 加号,特殊符号转换为 ASCII HEX 值,http服务器是使用ASCII编码传输数据的,其数据是按照key1=val1&amp;amp;key2=val2 的方式进行编码,后端request.getpar...
mFC 在udp接收线程接收实时数据
网络没有丢包(包的数据总量没少)在接收中开了一个线程,在while循环里用两块固定大小内存交替接收(我这里用了2个链表),1个满了就PostMessage 在消息里专门写入数据库,用另外一个链表接收数据,但是好像一PostMessage 出去,在从链表中取出结构体里的一个字段,就出现接收到的数据结构体中字段出现变成一片0的情况。不知道是不是因为在for循环下,从链表里一个个取出结构体导致时间来不及取出来,还是链表内存混乱了??不知道有谁遇到过或接收处理够实时数据??数据量太大了。。rn 感觉好像来不及从链表中获取数据,是不是要开一个另外一个存储线程,专门用来写数据
关键字:winsock 数据接收 接收类型
我用winsock传递数据,有很多种,包括字节,字符串,整数rn但在DataArrival(ByVal bytesTotal As Long)的数据类型声明好像只有一个管用。rn怎么可以传送,接收,声明多种数据类型。
socket接收端的数据接收问题
多数的Socket代码是:客户端Socket连接到服务端后立即发送信息,而我的要求一同。rn当客户端与服务端建连接后不会立即发送信息,相当于rnButton1_clickrn ConnectToServer();rn---------------------------rnButton2_clickrn SendMsg();rn---------------------------rn这时出现问题了,如果用SendMsg发送信息,那么服务的侦听Socket是收不到信息的,我想这些信息应该是发送到在客户端与服务端建立连后的Socket了。而这个服务端的Socket我是保存下来了,但却不知道怎么触发DataReceive事件,发便接收数据
socket 接收不确定数据怎么接收
如题 比如recv接收函数要怎么开辟缓冲区,不确定数据多少,可能很多好几K,这样要怎么实现呢?谢谢各位了
Java服务器端接收图片
Java服务器端套接字,用于进行图片数据的接收,并将图片放置到tomcat应用目录下
UDP数据接收测试
IP连接两台PC,在一台PC上运行RECEIVE_UDP,接收另外一台PC发来的UDP数据并保存。需要设置另外一台PC的IP地址,选择数据存储目录和文件名。
C#接收串口数据
基于C# winform,建立监听线程,读取串口数据
表单提交及后台数据接收
用POST请求,后台原生接收的一个公式: req.addListener(&quot;data&quot;,function(chunk){ alldata += chunk; }) //当全部传输完毕之后 req.addListener(&quot;end&quot;,function(){ console.log(alldata,toString()); req.end(&quot;success&quot;); }) 现...
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数