java-Android到servlet图像上载以保存在服务器上

我已经创建了一个servlet来接受来自我的android应用程序的图像.我正在servlet上接收字节,但是,我希望能够以原始名称将该图像保存在服务器上.我怎么做.我不想使用Apache Commons.还有其他适合我的解决方案吗?

谢谢

解决方法:

借助Android内置的HttpClient APImultipartentity类,将其作为multipart/form-data请求发送.

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://example.com/uploadservlet");
multipartentity entity = new multipartentity();
entity.addPart("fieldname", new InputStreamBody(fileContent, fileContentType, fileName));
httpPost.setEntity(entity);
HttpResponse servletResponse = httpClient.execute(httpPost);

然后在servlet的doPost()方法中,使用Apache Commons FileUpload提取零件.

try {
    List<FileItem> items = new ServletFileUpload(new diskFileItemFactory()).parseRequest(request);
    for (FileItem item : items) {
        if (item.getFieldName().equals("fieldname")) {
            String fileName = FilenameUtils.getName(item.getName());
            String fileContentType = item.getContentType();
            InputStream fileContent = item.getInputStream();
            // ... (do your job here)
        }
    }
} catch (FileUploadException e) {
    throw new servletexception("Cannot parse multipart request.", e);
}

I dont want to use apache commons

除非您使用的Servlet 3.0支持开箱即用的0033请求多部分/表单数据,否则您将需要根据RFC2388重新创建多部分/表单数据解析器.这只会长期困扰您.硬.我真的看不到您不使用它的任何原因.是无知吗?至少没有那么难.只需将commons-fileupload.jar和commons-io.jar放在/ WEB-INF / lib文件夹中,并使用上面的示例.而已.您可以找到另一个示例here.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...