下载图像时不会调用didReceiveData

时间:2013-08-14 22:51:50

标签: ios ios4

我在这个主题上看过很多帖子,但没有一个人帮助解决这个问题。我在webserver上有一个download.php文件,用于下载存储在服务器上的图像。 php通过将任务分为两步来完成此任务 第一步是我发送用户信息,php返回与用户关联的图像ID。在基于这些ID的第二步中,我将另一个请求发送到同一个php页面并逐个请求特定id的图像。
当在html或我的android代码中使用时,这种方法很有效,所以我确信在php中没有问题。

当我从ios代码向php发送请求时,获取图像ID的第一步效果很好,但请求图像根本不起作用。永远不会调用didReceieveData回调。这就是我在做什么 -

- (void)downloadImages:(NSInteger)imageNo{
    NSString *post = [NSString stringWithFormat:@"user=%@&download=%@&imageId=%d", userName, @"true",imageNo];

    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
                                    initWithURL:[NSURL
                                                 URLWithString:@"MYWEBSERVER/download.php"]];

    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];

    currentDownMode = DOWN_IMAGE;

    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

这是我在php页面中的内容 -

function download()
{
    global $folder_path, $user_id, $image_table, $sql_folder_path;
    $fileID = $_POST["imageId"];
    $sql="SELECT fileName,filePath FROM $image_table WHERE fileId='$fileID'";
    $query = mysql_query($sql) or die($sql . ' - ' . mysql_error());
    $row = mysql_fetch_array($query);
    $im = file_get_contents("../" . $row[1] . $row[0]);
    header('content-type: image/gif'); 
    echo $im;
}

0 个答案:

没有答案