Commons FileUpload Android上传框架

android 里的文件上传,说简单也简单,说麻烦也挺麻烦的。要说靠谱又经典的方案,commons-fileupload.jar算是老牌选手了。它是 Apache 出品,专门搞 HTTP 上传这一块,用起来还挺顺的。

这种框架在 Android 里用其实也能玩,只不过不像 Web 端那么直接。你得自己拼HttpURLConnection或者搭配HttpClient来整 POST 求,把文件传出去。而服务端再用ServletFileUpload来接,配合FileItemFactory就能搞定。

举个例子,你可以这样:

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
for (FileItem item : items) {
  if (!item.isFormField()) {
    String fileName = item.getName();
    InputStream fileContent = item.getInputStream();
    // 文件写入服务器逻辑...
  }
}

啦,在 Android 上用得比较多的还是OkHttp或者Retrofit这些现代库,写法更清爽,响应也快。不过如果你项目本身就是基于commons生态的,或者服务器那边就是用commons-fileupload的,那这个方案还挺搭的。

记得好几个点:先加好INTERNET权限,注意文件大小,最好加个上传进度条,用户体验更好;再就是异常别省,上传失败了怎么提醒、重试,安全加密也别忘了。

如果你正在做 Android 上传功能,又刚好用的是老项目,那commons-fileupload.jar这个组合值得一试;如果你想要更现代的写法,那去看看OkHttpRetrofit也不错。

gz 文件大小:182.67KB