2010-02-28 68 views
0

我使用下面的代码(与ASIHTTPRequest)尝试从我的iPhone上传php文件到我的Macbook Pro上运行的LAN MAMP服务器。我的目标-C和我的PHP似乎排队,但文件不上传。ASIHTTPRequest文件上传和PHP

Objective-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)); 
?> 

这是怎么回事错在这里?

感谢,

詹姆斯

+0

对不起,我没有上传PHP文件,我正在上传CSV文件这是值得的。然而,我在服务器端使用PHP。 – James 2010-02-28 15:04:40

回答

0

代码看起来不错。您确定您的服务器的PHP配置正在接受上传,并且CSV的大小限制在?

1

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

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

0

我知道这个回应可能来不及帮助你,但为了防止其他人有同样的问题并查看这篇文章,我找到了解决方案。我遇到了这个确切的问题,没有一个我能找到的例子似乎包含了解决方案。但这很简单,你必须“开始”上传,就像你下载一样。

总之,在你的Objective-C代码的最后,你会添加一行:

[request startSynchronous]; 
1

的Xcode

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

PHP

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


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