我正试图通过php5将图像从IOS7上传到我的服务器。
iOS代码
NSString *urlString = @"http://<domain>/conAPI/imageAPI.php";
NSData *imageData = UIImagePNGRepresentation(venueImageView.image);
NSMutableURLRequest *requestImage = [[NSMutableURLRequest alloc] init];
[requestImage setURL:[NSURL URLWithString:urlString]];
[requestImage setHTTPMethod:@"POST"];
NSString *boundary = @"0xKhTmLbOuNdArY";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[requestImage addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"'r'n--%@'r'n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name='"uploadedimage'"; filename='"V%@.png'"'r'n",[userDictioanry objectForKey:@"user_id"]] 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]];
[requestImage setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:requestImage returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"Image Return String: %@", returnString);
和我的php
ini_set('log_errors',1);
$uploaddir = '/var/www/html/memberImages/';
print_r($_FILES);
$file = $_FILES['uploadedimage']['name'];
$uploadfile = $uploaddir . $file;
if (file_exists($uploaddir) && is_writable($uploaddir)) {
if (move_uploaded_file($_FILES['uploadedimage']['tmp_name'], $uploadfile)) {
echo 'DONE '.$file;
}else {
echo "error ".$_FILES['uploadedimage']['tmp_name'].' '.$uploadfile;
}
}else {
if (!file_exists($uploaddir)){
echo 'upload dir does not exist '.getcwd().' '.$uploadfile.''n';
}
if(!is_writable($uploaddir)) {
echo 'Upload directory is not writable.'.''n';
}
}
在任何情况下,我都会返回带有两个文件名的"error"。error.log没有显示任何内容。root用户已对目录和所有父级进行了读/写操作。
你能指出我逻辑中的一个简单缺陷吗。如果这不涉及第三方方法,我也将不胜感激。在这种情况下,不使用AFNetworking是有正当理由的。
提前感谢Chris
上传路径错误,取决于脚本所在的位置更改
$uploaddir = '/var/www/html/memberImages/';
至
$uploaddir = 'memberImages/';
这不是代码的问题。。。。。
目录membersImages在某种程度上已损坏。权限显示776,所有者显示为root用户,root用户可以CD进入目录,但LS显示为零内容。退出,rmdir失败,因为目录不为空。递归删除工作,MKDIR和上传工作。
给我涂上奇怪的颜色。。。。。