在delicacy-serlvet.xml中添加了:
<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="uploadTempDir" value="/uploadTmp"/>
</bean>
调试的时候服务端代码items = upload.parseRequest(request);得到的结果一直为0.
客户端代码:
/**
* @param 只发送普通数据,调用此方法
* @param urlString 对应的Php 页面
* @param params 需要发送的相关数据 包括调用的方法
* @param imageuri 图片或文件手机上的地址 如:sdcard/photo/123.jpg
* @param img 图片名称
* @return Json
*/
public String uploadFile(String uploadUrl,Map<String, Object> params,String imageuri ,String img){
String result="";
String end = "\r\n";
String MULTIPART_FORM_DATA = "multipart/form-data";
String BOUNDARY = "---------7d4a6d158c9"; //数据分隔线
String imguri ="";
if (!imageuri.equals("")) {
imguri = imageuri.substring(imageuri.lastIndexOf("/") + 1);//获得图片或文件名称
}
try {
URL url = new URL(uploadUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不使用Cache
conn.setConnectTimeout(60000);// 6秒钟连接超时
conn.setReadTimeout(60000);// 6秒钟读数据超时
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);
StringBuilder sb = new StringBuilder();
//上传的表单参数部分,格式请参考文章
if(params!=null)
{
for (Map.Entry<String, Object> entry : params.entrySet()) {//构建表单字段内容
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");
sb.append(entry.getValue());
sb.append("\r\n");
}
}
//
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\""+ "userName" + "\"\r\n\r\n");
sb.append("lindy");
sb.append("\r\n");
//
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");