Android httpresponse从index.php下载png

Android httpresponse从index.php下载png,php,android,Php,Android,我有以下问题 我将向index.php文件发送一个httpost My index.php文件返回头文件'image/png'并偏离文件轨道 然后我的代码将响应下载到设备SD卡上的一个文件中 它被下载到设备SD卡上,大小正确,示例中的图像大小为34Mb 但下载后,我无法在设备上打开该文件。 有人知道问题是什么吗 字符串文件=18228; HttpClient HttpClient=new MyHttpClientmContext;//MyHttpCient处理https HttpPost Ht

我有以下问题

我将向index.php文件发送一个httpost My index.php文件返回头文件'image/png'并偏离文件轨道 然后我的代码将响应下载到设备SD卡上的一个文件中 它被下载到设备SD卡上,大小正确,示例中的图像大小为34Mb 但下载后,我无法在设备上打开该文件。 有人知道问题是什么吗

字符串文件=18228; HttpClient HttpClient=new MyHttpClientmContext;//MyHttpCient处理https HttpPost HttpPost=新的HttpPosthttps://example.com/json/index.php; // 确保url是正确的。 HttpResponse response=httpclient.executehtppost; nameValuePairs.addnew BasicNameValuePairrequestFile,文件; StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder.permitAll.build; StrictMode.setThreadPolicypolicy; 文件SDCardRoot=Environment.getExternalStorageDirectory; File fileDownload=new FileSDCardRoot+/MyFiles,General-information-Example.jpg; InputStream输入=null; OutputStream输出=null; 字节[]缓冲区=新字节[1024]; 试一试{ System.out.println下载文件。。。; 输入=response.getEntity.getContent; output=新文件OutputStreamFileDownload; 对于int-length;length=input.readbuffer>0{ output.writebuffer,0,长度; } System.out.printlnFile已成功下载!; }最后{ 如果输出!=null,请尝试{output.close;}捕获IOException logOrIgnore{} 如果输入!=null,请尝试{input.close;}捕获IOException logOrIgnore{} } 将output.flush放入;在关闭输出之前

您的finally语句应该是这样的:if output!=null try{output.flush;output.close;}捕获IOException logOrIgnore{}

CMYK所在的图像应为RGB 视频并不总是工作,这取决于编解码器
当我将Pdf、Mp4和其他文件下载到设备上时,同样的问题也会出现。我无法打开文件。当我用直接图像链接将文章更改为get时,它将下载。所以我认为问题在于php文件的头。HttpClient HttpClient=新的MyHttpClientMcContext;HttpGet httppost=新的HttpGet;我检查了相同的问题是否符合大于25MB的文件。当我对大于25MB的文件执行get时,它也不会打开:。图像将不会加载,因为它们是CMYK。因此,通过解决服务器端图像转换为RGB,应该解决的第一个文件类型问题将不会打开。图像现在正在工作。谢谢,但这并没有解决问题。它仍在下载,但我无法打开图像。