ASIHTTPRequest文件上传和PHP

时间:2010-02-28 14:49:10

标签: php iphone asihttprequest

我正在使用以下代码(使用ASIHTTPRequest)尝试将php文件从我的iPhone上传到我的Macbook Pro上运行的LAN MAMP服务器。我的目标-c和我的php似乎排成一行,但文件没有上传。

目标-C代码

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
[path stringByAppendingPathComponent:[pieces objectAtIndex:indexPath.row]];

NSURL *url = [NSURL URLWithString:@"http://192.168.1.102:8888/upload.php"];


ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setFile:path forKey:@"file"];

PHP代码

 <?php
$target = "uploads/";
$target = $target . basename( $_FILES['file']['name']) ;
$ok=1;
(move_uploaded_file($_FILES['file']['tmp_name'], $target));
?>

这里出了什么问题?

谢谢,

詹姆斯

4 个答案:

答案 0 :(得分:1)

Apache httpd进程是否具有在uploads/目录中写入的权限?尝试将其设置为/tmp/并查看是否有效?

我使用一个小的PHP脚本为AppSales-Mobile创建了一个备份解决方案。写了here。我创建的php脚本看起来像this。可以在方法- (void) startUpload中查看实际的邮政编码here

答案 1 :(得分:1)

<强>的Xcode

[request setFile:path forKey:@"myfile"];

<强> PHP

$uploaddir = '';
$uploadfile = $uploaddir.basename($_FILES['myfile']['name']);


move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile);

答案 2 :(得分:0)

代码看起来很好。您确定您的服务器的PHP配置是否接受上传,并且CSV是否在大小限制范围内?

答案 3 :(得分:0)

我知道这个回复可能为时已晚,无法帮助您,但为了防止其他人遇到同样的问题并查看此帖,我找到了解决方案。我遇到了这个问题,我找不到的例子似乎都没有包含解决方案。但这很简单,你必须“开始”上传,就像你下载一样。

简而言之,在您的objective-c代码的末尾,您将添加以下行:

[request startSynchronous];