微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐