2013-12-18 7 views
0

Я пытаюсь загрузить изображение на серверЗагрузка изображения на PHP сервер с айфона

Ниже приводится iPhone и PHP код

// create request 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    [request setHTTPShouldHandleCookies:NO]; 
    [request setTimeoutInterval:30]; 
    [request setHTTPMethod:@"POST"]; 

    NSString *boundary = @"0xKhTmLbOuNdArY"; 
    NSString *url = [NSString stringWithFormat:POST_URL,BASE_URL, [Utilities myUserId],@"", TYPE_IMAGE]; 

    // set Content-Type in HTTP header 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; 
    [request setValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    // post body 
    NSMutableData *body = [NSMutableData data]; 

    NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 
    [params setObject:self.chatBox.text forKey:@"comment"]; 

    // add params (all params are strings) 
    for (NSString *param in params) 
    { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"%@\r\n", [params objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 

    if (picData) 
    { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"image.jpg\"\r\n", @"uploadedfile"] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:picData]; 
     [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 

    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    // setting the body of the post to the reqeust 
    [request setHTTPBody:body]; 

    // set URL 
    [request setURL:[NSURL URLWithString:url]]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
    if (connection) 
    { 
     [self dismissKeyboard]; 
    } 

PHP Кодекс является

$directoryPath = "userId_" . $userId; 
    $this->makeDir("uploads/images/" . $directoryPath); 
    $this->makeDir("uploads/thumbs/" . $directoryPath); 

    $val = $userId .'_' . time() . ".jpg"; 
    $mainPath = "uploads/images/" . "image_" . $val; 
    $thumbPath = "uploads/thumbs/" . "thumb_" . $val; 

    if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $mainPath)) 
     return true; 
    else 
     return false; 


    if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $mainPath)) 

возвращается ложь , что может быть неправильным.

["userfile"]=> 
    array(5) { 
    ["name"]=> 
    string(6) "dr.jpg" 
    ["type"]=> 
    string(0) "" 
    ["tmp_name"]=> 
    string(0) "" 
    ["error"]=> 
    int(1) 
    ["size"]=> 
    int(0) 
    } 
+0

Является ли загрузка каталогов/изображений и загрузок/превью сделана? У вас есть разрешение на это? – user602525

+0

они уже сделаны, я уже установил Разрешения 777. Я не знаю, что еще есть isse, я протестировал, \t \t \t $ file = basename ($ _ FILES ['userfile'] ['name']) ; дает правильное имя, поэтому загрузка в порядке –

+0

, если вы var_dump ($ _ FILES) перед оператором if, whats output? – user602525

ответ

1

Размер файла вы подаете превышает upload_max_filesize, установленный в вашем php.ini, это может быть определено вашим var_dump() и изучения ключа ошибки, которые в данном случае = 1

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

Из документов - upload_max_filesize по умолчанию 2MB

http://www.php.net/manual/en/features.file-upload.errors.php

Распространенные ошибки:

http://www.php.net/manual/en/features.file-upload.common-pitfalls.php

+0

Я отредактировал php.ini и изменил значение по умолчанию val на 200M, но результат тот же. ошибка все еще такая же :( –

+0

ключ ошибки по-прежнему int (1)? Насколько величен файл, который вы пытаетесь загрузить? – user602525

+0

2697777 байт, mabye мне нужно перезапустить apache? –