Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
通过Http post上传的Android-Zip文件包含标题_Android_Upload_Zip - Fatal编程技术网

通过Http post上传的Android-Zip文件包含标题

通过Http post上传的Android-Zip文件包含标题,android,upload,zip,Android,Upload,Zip,我使用以下代码将一个zip文件从android应用程序上传到一个位置。观察结果是: 1.服务器上上载的zip文件未使用windows资源管理器打开。 2.Winzip、7-zip等工具都可以打开服务器上传的zip。 3.直接从android设备(通过adb)提取文件时,可以通过windows资源管理器打开该文件。(意味着它没有腐败) 我分析了上传的zip的十六进制转储,发现它在开始时包含http头。在手动删除标题并重新保存时,它将完成此任务。看起来它们是在正文中发送的,或者整个标题部分被误解为正

我使用以下代码将一个zip文件从android应用程序上传到一个位置。观察结果是: 1.服务器上上载的zip文件未使用windows资源管理器打开。 2.Winzip、7-zip等工具都可以打开服务器上传的zip。 3.直接从android设备(通过adb)提取文件时,可以通过windows资源管理器打开该文件。(意味着它没有腐败)

我分析了上传的zip的十六进制转储,发现它在开始时包含http头。在手动删除标题并重新保存时,它将完成此任务。看起来它们是在正文中发送的,或者整个标题部分被误解为正文的一部分。我无法避免这些头,因为服务器脚本需要这些头

谢谢

服务器上的十六进制文件:-B8m4yaqs_dbt3duneuqeqqidnyhyxetw 内容配置:表单数据;name=“fileupload”;filename=“crashLogs.ZIP” 内容类型:应用程序/zip 内容传输编码:二进制

如何上传Zip文件而不保存文件头

            HttpClient httpclient = new DefaultHttpClient();

            HttpPost postRequest;
            MultipartEntity reqEntity;
            FileBody fileBody;

            postRequest = new HttpPost(serverUrl);
            postRequest.addHeader("Content-Type", "application/zip");
            postRequest
                    .addHeader(
                            "X-BRB-Custom",
                            "veT14BAttolUAgiosgaultfOrTH93TAD30sag48feYbUlk45COInneBcaDegEARhowOfAYs10HELpsmump23");

            File zipFile = new File(Zip);
            try
            {
                reqEntity = new MultipartEntity();

                fileBody = new FileBody(zipFile, "application/zip");
                reqEntity.addPart("fileupload", fileBody);

                postRequest.setEntity(reqEntity);

                HttpResponse response = httpclient.execute(postRequest);

                if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
                {
                    httpclient.getConnectionManager().shutdown();
                    return deleteFiles();
                }

            }
            catch (UnsupportedEncodingException e)
            {
                e.printStackTrace();
            }
            catch (ClientProtocolException e)
            {
                e.printStackTrace();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }

            httpclient.getConnectionManager().shutdown();

            return false;

你也可以发布服务器端代码吗?你有解决办法吗?请把它也寄出去。谢谢