使用okhttp上传文件---单文件或多文件
来源:互联网 发布:淘宝网皮夹克 编辑:程序博客网 时间:2024/06/02 02:19
资源链接:http://download.csdn.net/detail/baidu_24278081/9820885
服务器端代码---使用spring mvc
@RequestMapping("addPicture")
public void addPicture(HttpSession session,HttpServletRequest request,HttpServletResponse response){
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=utf-8");
PrintWriter printWriter = null;
try {
printWriter = response.getWriter();
long startTime=System.currentTimeMillis();
//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
request.getSession().getServletContext());
//检查form中是否有enctype="multipart/form-data"
if(multipartResolver.isMultipart(request)){
//将request变成多部分request
MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
//获取multiRequest 中所有的文件名
Iterator iter=multiRequest.getFileNames();
int i = 0;
while(iter.hasNext())
{
//一次遍历所有文件
MultipartFile file=multiRequest.getFile(iter.next().toString());
System.out.println(i++);
if(file!=null){
String fileName = file.getOriginalFilename();
//获取picture文件夹路径
String path = session.getServletContext().getRealPath("picture");
//上传 到指定路径
new File(path).mkdirs();
file.transferTo(new File(path+"/"+fileName));
}
}
printWriter.print(1);
printWriter.flush();
}else{
printWriter.print(0);
printWriter.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if (printWriter!=null) {
printWriter.close();
}
}
}
android端代码:
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);for (int i = 0; i <selected.size() ; i++) { File f=new File(selected.get(i).getOriginalPath()); if (f!=null) { Toast.makeText(PhotoSelectorActivity.this, ":"+selected.get(i).getOriginalPath(), Toast.LENGTH_SHORT).show();//添加文件 builder.addFormDataPart(f.getName(), f.getName(), RequestBody.create(MEDIA_TYPE_PNG, f)); }}//添加普通数据builder.addFormDataPart("time","demo");MultipartBody requestBody = builder.build();Request request = new Request.Builder() .url("http://ip:端口/项目名/addPicture.do") .post(requestBody) .build();client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Log.e("musiclistpulldown", "failure"); } @Override public void onResponse(Call call, Response response) throws IOException { Message msg = handler.obtainMessage(); msg.what = 1; handler.sendMessage(msg); }});
问题:
//添加文件builder.addFormDataPart(f.getName(), f.getName(), RequestBody.create(MEDIA_TYPE_PNG, f));
其中第一个参数 f.getName 可以取相同值吗?我这里测试取相同值时,只上传了第一张图片eg:
//添加文件builder.addFormDataPart(“file”, f.getName(), RequestBody.create(MEDIA_TYPE_PNG, f));
- 使用okhttp上传文件---单文件或多文件
- okhttp上传文件实例
- okhttp上传文件
- okhttp-上传文件
- okhttp封装文件上传
- okhttp上传文件
- OKhttp post上传文件
- OkHttp使用(三)文件上传
- OkHttp使用(三)文件上传
- OkHttp使用+文件的上传+断点续传
- 使用OKHttp上传、下载文件记录进度
- 单/多文件上传
- 单多文件上传
- 文件上传 单文件 多文件 皆可
- struts2文件上传(单文件/多文件)
- 单文件上传、多文件上传
- 单文件上传和多文件上传
- Android 使用OKhttp 3.0以上版本上传文件或图片(MultipartBuilder已不可用)
- IOS动画UI层的研究
- Java Web 之过滤器Filter详解
- JAVA开发常用英语单词总结三
- mac隐藏/显示文件
- java父类指针指向子类的一点理解
- 使用okhttp上传文件---单文件或多文件
- POJ 2602 Superlong sums
- 可以在Apple官网下载各个版本的Xcode的路径
- c++异常处理
- 简单迭代
- android-afl (American Fuzzy Lop for Anadroid)编译安装
- java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory 标签: l
- html转义
- 第七章 前面是铺垫,现在是小高潮