1
Я пытаюсь загрузить изображение из изопропилового устройства на мой сервер, вот исходный код,ИОС изображения загрузить на сервер не работает
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *smallImage = [info objectForKey:UIImagePickerControllerOriginalImage];
NSString* serverurl = @"http://myserverurl/thumbnailCreator.php";
NSURL *path = [info valueForKey:UIImagePickerControllerReferenceURL];
NSString *picPath = [path absoluteString];
[self uploadImage2:serverurl :smallImage :picPath];
[picker dismissModalViewControllerAnimated:YES];
}
-(bool)uploadImage2 :(NSString*)php :(UIImage*)image :(NSString*)picPath
{
int h = image.size.height;
int w = image.size.width;
//uploadname =filename;
NSString* filename = picPath;
NSError *error;
NSURLResponse *response;
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:php]];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
[request addValue:filename forHTTPHeaderField:@"uploadfile"];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadfile\";filename=\"%@\"\r\n", filename] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:UIImagePNGRepresentation(image)]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// close the form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// set request body
[request setHTTPBody:body];
// Make synchronous request
NSData *data1 = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSString* outstr = @"NNOK";
NSString *returnString;
NSDictionary* json;
if ([data1 length] > 0 && error == nil)
{
returnString = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
//drill_debug_info("Response:%s",[returnString UTF8String]);
NSError* error1;
json = [NSJSONSerialization
JSONObjectWithData:data1 //1
options:kNilOptions
error:&error1];
outstr = [json objectForKey:@"Response"]; //2
}
if([outstr isEqualToString:@"OK" ])
{
return true;
}
else
{
return false;
}
}
Но я не могу увидеть файл загружен на разъединять и всегда получать NNOK
результат , Что может быть неправильным с вышеуказанным кодом.
Вот мой сервер PHP
<?php
$target_path1 = "images/";
$a=array('Response'=>OK);
$b=array('Response'=>NOK);
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
if(!empty($_FILES)){
//print_r($_FILES);
$target_path1 = $target_path1 . basename($_FILES['uploaded_file']['name']);
//echo $target_path1;
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path1)) {
echo json_encode($a);
} else{
// echo "Return Code: " . $_FILES["uploaded_file"]["error"]."size:".$_FILES["uploaded_file"]["size"];
echo json_encode($b);
}
}
?>
вы уверены, что тело и PHP не ноль, я сомнительный application/octet-stream, попробуйте с помощью [@ "Content-Type: image/jpeg \ r \ n \ r \ n" dataUsingEncoding: NSUTF8StringEncoding]]; – Alok
может отправить полный код для метода uploadImage2 ?? –
@Rahul Shirphule Я уже включил полный код для 'uploadeimage2' – Haris