Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 图像上传iOS_Php_Ios_File Upload - Fatal编程技术网

Php 图像上传iOS

Php 图像上传iOS,php,ios,file-upload,Php,Ios,File Upload,几个小时以来,我一直在尝试将jpg图像上传到我的服务器上。我找到了很多关于这个话题的问题和解决方案,但我没有找到答案。 到目前为止,我得到的是: XCODE: - (void) upload { UIImage *img = [UIImage imageNamed:@"test.jpg"]; NSData *imageData = UIImageJPEGRepresentation(img ,90); long imageSize = (long)[imageData length]; NS

几个小时以来,我一直在尝试将jpg图像上传到我的服务器上。我找到了很多关于这个话题的问题和解决方案,但我没有找到答案。 到目前为止,我得到的是:

XCODE:

 - (void) upload {
UIImage *img = [UIImage imageNamed:@"test.jpg"];

NSData *imageData = UIImageJPEGRepresentation(img ,90);
long imageSize = (long)[imageData length];
NSLog(@"SIZE OF IMAGE: %.2f Mb", (float)imageSize/1024/1024);


NSString *urlString = @"http://www.MYURL.com/upload.php";

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setURL:[NSURL URLWithString:urlString]] ;
[request setHTTPMethod:@"POST"];

NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];

NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary]dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\".jpg\"\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n"dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary]dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(@"%@data",returnString);
}
PHP:


我对服务器上的目录设置了完全权限,这样就不会出现错误


帮我解决这个问题会让我非常幸运

您在文件
NSLog
中得到了什么?您的服务器日志中是否有任何内容?为什么不向sendSynchronousRequest传递一个N错误,然后检查结果?PHP服务器端代码在哪里,
filename=\”.jpg\“
??我认为HTTP内容类型头应该是“多部分/混合”;boundary=“…””可能是您的问题的一部分。您可能还需要将正文部分内容类型设置为image/jpeg。在任何情况下,同时给我们返回的NSError和server返回字符串都会有很大帮助。我应该在哪里设置“multipart/mixed”?like->NSString*contentType=[NSString stringWithFormat:@“多部分/混合;边界=%@”,边界];
<?php
$target_path = "./";

$target_path = $target_path . basename( $_FILES['picture']['name']);  

if(move_uploaded_file($_FILES['picture']['tmp_name'], $target_path)) {  
echo "The file ".  basename( $_FILES['picture']['name'])." has been uploaded";  
} else{  
echo "There was an error uploading the file, please try again!";  
}
?>