在我正在处理的应用程序中,我们允许用户将图像上传到我们的服务器。我在asyncTask线程中执行此操作并使用httpMime并将图像作为字节数组发送到其中一个多部分实体字段中。我说大约80%的时间都很有用。图像显示在mySql表中的服务器上,因为longBlob没问题。由于网络状况的各种变化,或者在我测试过的功能较差的设备上(HTC dream / tmobile G1),内存将耗尽,另外20%的图像在上传时丢失。我通过添加一系列catch块来处理内存问题,这不再是一个问题。我曾尝试使用httpconnectionparams,但我不确定这是否会对问题产生很大影响。
然而.....现在我需要一些指导,以了解如何处理因网络问题而丢失的图像,例如延迟,从4g切换到边缘,以及其他问题,例如完全丢失覆盖。我正在考虑一个后台服务,该服务将检查来自服务器的任何返回的对象,如果该对象没有与之关联的图像,则对后台服务进行排队以重试上载。我主要担心的是,在测试过程中图像不能到达我的服务器,但偶尔在驾驶时或在塔台服务边缘的某个地方进行测试时,应用程序将只传输我在数据库中可以看到的部分图像。
所以.....这次我向社区提出的问题是你是如何处理这样一个问题的。我想要尝试的一种方法是将多部分传输中的文件的实际大小发送到服务器,如果图像遇到php我已经设置并且不匹配表示文件大小的int的大小然后发回响应中的标志值。然后根据应用程序返回的响应,它可能会再次触发asynctask重新上载照片。这种方法设置起来非常简单,但我想要一些更多的失败证明,而且如果用户一直没有覆盖,我会让这个僵尸进程咀嚼他们的电池......没有好处。
总是对意见,链接或其他帮助的问题提供任何帮助将非常感激:)
答案 0 :(得分:0)
答案 1 :(得分:-1)
好吧没有问题.....因为我没有得到任何好的回应指向我在任何方向我实施我自己的备份服务来检查服务器中的数据与手机上的数据。如果匹配没有问题,如果它的短,则询问用户是否想要重新上传。效果很好....感谢我欢呼哈哈!!!!