Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android—将文件上载到Javaservlet并使用ApacheIOutils处理它_Java_Android_Servlets_File Upload - Fatal编程技术网

Android—将文件上载到Javaservlet并使用ApacheIOutils处理它

Android—将文件上载到Javaservlet并使用ApacheIOutils处理它,java,android,servlets,file-upload,Java,Android,Servlets,File Upload,我正在使用以下教程在Android中上载文件: 在服务器端,我使用Javaservlet和ApacheIOutils来处理它 ServletFileUpload fileUpload = new ServletFileUpload(); FileItemIterator fileItemIterator = fileUpload.getItemIterator(request); while (fileItemIterator.hasNext()) { FileItemStream fil

我正在使用以下教程在Android中上载文件:

在服务器端,我使用Javaservlet和ApacheIOutils来处理它

ServletFileUpload fileUpload = new ServletFileUpload();
FileItemIterator fileItemIterator = fileUpload.getItemIterator(request);
while (fileItemIterator.hasNext()) {
  FileItemStream filestream = fileItemIterator.next();
  doStuff(filestream);
}
在浏览器中一切正常,但在Android上,我的问题是当我在文件流上调用getContentType时,它返回null。
为什么这里有差异?我没有处理getContentType的空值,因为有人告诉我,空值不合适。

我使用Wireshark查看浏览器实际发送的内容。 在内容处理之后(例如“Content-Type:application/pdf\r\n\r\n”),会发送另一个内容类型头(在“MIME多部分媒体封装”部分)。 因此,在文件上载教程中,在以下行之后:

dos.writeBytes("Content-Disposition: form-data;name=\"uploadedfile\";" + "filename=\"" + fileName + "\"" + lineEnd);
我刚才补充说:

String mimeType = URLConnection.guessContentTypeFromName(file.getName());
dos.writeBytes("Content-Type: " + mimeType + lineEnd);
现在,上传过程工作正常

当然,对于许多扩展,mimeType可能为null,因此应该根据需要对其进行检查