1
を動作していないサーバへのIOSイメージのアップロードは、ここにソースコードがあり、私は自分のサーバーにイソデバイスから画像をアップロードしようとしています
- (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 AFNetworkingを使用して
<?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がnilでないことを確認され、I疑わしいアプリケーション/オクテットストリーム、[@ "Content-Type:image/jpeg \ r \ n \ r \ n" dataUsingEncoding:NSUTF8StringEncoding]]; – Alok
メソッドuploadImage2の完全なコードを投稿できますか? –
@Rahul Shirphule 'uploadeimage2'のフルコードを既に含んでいます – Haris